使用python的json模块时,在json.dump()上出了点小问题,查阅资料,已解决,遂记录一下。
问题描述
将python格式的对象输出到json文件,出现中文转换问题:
欲将次modeltest输出到文件中
moudeltest ={"type":"Feature","properties":{"adcode":"100000","name":"中华人民共和国","center":["116.3683244","39.915085"],"level":None,"parent":{"adcode":None}},"geometry":{"type":"MultiPolygon","coordinates":[]}}
写入文件的代码函数,不存在文件夹时,创建文件夹再写入文件
def write2file(filename,data):
import os
import json
index = filename.rindex("\")
dirname = filename[:index]
print(dirname)
if not os.path.exists(dirname):
os.mkdir(dirname)
filename = filename+'.json'
with open(filename,'w',encoding='utf-8') as f:
json.dump(data,f,indent=2,separators=(',', ': '))
f.close()
write2file("E:\pythonFile\中国\moudeltest",moudeltest)
原因分析:
json.dump的参数没有了解透,修改其中的ensure_ascii参数值即可。
ensure_ascii=True
:默认输出ASCLL码,如果把这个该成False
,就可以输出中文。
解决方案:
修改如下参数即可:
json.dump(data,f,indent=2,separators=(',', ': '),ensure_ascii=False)
def write2file(filename,data):
import os
import json
index = filename.rindex("\")
dirname = filename[:index]
print(dirname)
if not os.path.exists(dirname):
os.mkdir(dirname)
filename = filename+'.json'
with open(filename,'w',encoding='utf-8') as f:
json.dump(data,f,indent=2,separators=(',', ': '),ensure_ascii=False)
f.close()
再次运行,完成中文输出显示
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)