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)
打印结果
直接转换dict1 {"a": "1", "b": "2"}
直接转换dict2 {"a": "1", "\u59d3\u540d": "\u9a6c\u4e91"}
严格格式转换dict1 {"a":"1","b":"2"}
严格格式转换dict2 {"a":"1","姓名":"马云"}
严格格式编码转换dict2 {"a":"1","å§å":"马äº"}
本文详细介绍了如何在Python中将字典格式转换为标准JSON格式,以确保在跨语言环境中(如Java)的兼容性和正确解析。通过使用`json.dumps()`方法的不同参数设置,如`separators`和`ensure_ascii`,可以精确控制输出格式,去除不必要的空格和确保Unicode字符的正确显示。

1283

被折叠的 条评论
为什么被折叠?



