python3 dict 字典 转 严格 json

python3中的字典dict格式会将{"a":"1","b":"2"}的格式自动转换为{'a': ' 1', 'b': '2'}单引号并添加上空格,

到Java或者其他强类型中或者高版本的json下不能识别,

比如在python中将字典转换成功json后传给Java,很有可能在Java中不能识别带空格和单引号的json格式,

那么就需要在python3中把格式转换成标准的json格式,直接上代码示例:

import json
 
dict1 = {"a":"1",
         "b":"2"}
dict2 = {"a":"1",
         "姓名":"马云"}
# 直接转换
json1 = json.dumps(dict1)
json1_1 = json.dumps(dict2)
# 严格格式转换
json2 = json.dumps(dict1, separators=(',', ':'), ensure_ascii=False)
json2_1 = json.dumps(dict2, separators=(',', ':'), ensure_ascii=False)
# 如编码格式不能通过请求参数传递,则转换下编码格式
json3 = json.dumps(dict2, separators=(',', ':'), ensure_ascii=False).encode('utf-8').decode('latin1')
 
print("直接转换dict1", json1)
print("直接转换dict2", json1_1)
print("严格格式转换dict1", json2)
print("严格格式转换dict2", json2_1)
print("严格格式编码转换dict2", json3)

json.dumps 参数解释:

Skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key
ensure_ascii:默认值True,如果dict内含有non-ASCII的字符,则会类似\uXXXX的显示数据,设置成False后,就能正常显示
indent:应该是一个非负的整型,如果是0,或者为空,则一行显示数据,否则会换行且按照indent的数量显示前面的空白,这样打印出来的json数据也叫pretty-printed json
separators:分隔符,实际上是(item_separator, dict_separator)的一个元组,默认的就是 (‘,’,’:’) 这表示dictionary内keys之间用“,”隔开,而KEY和value之间用“:”隔开。
encoding:默认是UTF-8,设置json数据的编码方式。
sort_keys:将数据根据keys的值进行排序。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值