本文主要是介绍python生成json(dump/dumps),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解析json的链接:http://blog.csdn.net/u010895119/article/details/77377413
python的encode功能,对我来说使用场景比较少,但最新遇到了一个问题:直接从接口获取的json串中,如果有中文,则中文在json串中是以ASCII码存在的,这个问题用dump/dumps的方法解决了,所以记下来理一下(python解释器版本:2.7)
decode & encode
decode:将json文件或json字符串解析成python的数据格式
encode则反过来,将python的一些数据格式转换成json文件或json字符串,并且可以很简单的生成美观的json文件/字符串dumps/loads & dump/load
dumps/loads:操作字符串
dump/load:操作文件
假如把从接口获取到的json保存在example.json中:
{"page": "user", "uri": "/userinfo", "elements": [{"var_name": "username", "description": "登录用户名"}]}
加载并查看:
>>> with open('example.json', 'r') as jsonfile:
... json_string = json.load(jsonfile)
...
# 直接打印,中文是ASCII码
>>> print json_string
{u'elements': [{u'var_name': u'username', u'description': u'\u767b\u5f55\u7528\u6237\u540d'}], u'page': u'user', u'uri': u'/userinfo'}# 使用dumps转换一下,打印出中文
>>> json_data = json.dumps(json_string, ensure_ascii=False)
>>> print json_data
{"elements": [{"var_name": "username", "description": "登录用户名"}], "page": "user", "uri": "/userinfo"}# 也可以打印的美观一些
>>> json_data2 = json.dumps(json_string, ensure_ascii=False, indent=1)
>>> print json_data2
{"elements": [{"var_name": "username", "description": "登录用户名"}], "page": "user", "uri": "/userinfo"
}
解释:json.dumps中传入ensure_ascii=False,即将ASCII码转换成中文显示出来。json.dumps将python的字典转换成了json对象(python显示为unicode)
Reference
https://docs.python.org/2/library/json.html#basic-usage
这篇关于python生成json(dump/dumps)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!