Json模块的使用注意:
- 通过json模块的 dumps或dump 方法,将Python数据转为json字符串并写入文件,默认按Unicode样式写入,文件编码为 ascii 。
如果希望按utf-8编码写入,可以添加 ensure_ascii=False 参数,则表示不按Unicode样式写入,按解释器编码 转码再写入:
json_str = json.dumps(item_list, ensure_ascii=False)
with open("tencent_utf8.json", "w") as f:
f.write(json_str)
json.dump(item_list, open("tencent_utf8.json", "w"), ensure_ascii=False)
Python3的解释器编码,默认为utf-8 可以正常写入数据;
Python2的解释器编码,默认为 ascii,如果数据内有中文则报出 UnicodeEncodeError,解决方案是修改解释器编码 为 utf-8
import sys
reload(sys)
sys.setdefaultencoding(“utf-8”)
-
将Python数据 通过json模块按 默认方式写入,文件里的 Unicode 没有前缀 u,
但是通过 json.load() json.loads()读入,即可复原为 Unicode -
将 类Unicode的普通字符串,转为 真正的 Unicode字符串
类似Unicode的普通字符串
s = ‘\u6df1\u5733’
#解码为真正的Unicode
s.decode(“unicode-escape”)
u’\u6df1\u5733’