python转json格式中,中文编码格式问题

python转json格式中,中文编码格式问题,第1张

项目场景:

使用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()

再次运行,完成中文输出显示

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/919035.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存