python json.dump中文乱码问题

json.dumps在认情况下,对于非ascii字符生成的是相对应的字符编码,而非原始字符

问题现象:

>>> import json
>>> js = json.loads('{"haha": "哈哈"}')
>>> print json.dumps(js)
{"name": "\u54c8\u54c8"}

解决办法:

设置 ensure_ascii=False 选项

>>> print json.dumps(js,ensure_ascii=False)
{"name": "哈哈"}

应用实例:

import json

#将字典转换成json文本
dic = {"companyId":95651,"positionName":"自动化测试","workYear":"3-5年","education":"本科","jobNature":"全职","companylogo":"i/image2/M01/2C/57/CgoB5lzUGO2AAoc3AACv6egD568191.png","salary":"15k-25k","city":"北京","financeStage":"B轮","industryField":"社交","companyShortName":"玩吧","approve":1,"positionId":5537531,"createTime":"2019-07-26 10:53:22","positionAdvantage":"七险一金,弹性不打卡,免费午餐,季度旅游","companySize":"150-500人"}
print(type(dic))
aString = json.dumps(dic,ensure_ascii=False)
print(type(aString))
print(aString)
json.dump(dic,open('test2.json',mode='w',encoding='utf-8'),ensure_ascii=False,)

输出

<class 'dict'>
<class 'str'>
{"companyId": 95651,"positionName": "自动化测试","workYear": "3-5年","education": "本科","jobNature": "全职","companylogo": "i/image2/M01/2C/57/CgoB5lzUGO2AAoc3AACv6egD568191.png","salary": "15k-25k","city": "北京","financeStage": "B轮","industryField": "社交","companyShortName": "玩吧","approve": 1,"positionId": 5537531,"createTime": "2019-07-26 10:53:22","positionAdvantage": "七险一金,"companySize": "150-500人"}

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...