您现在的位置是:网站首页> 编程资料编程资料
python字典保存为json后读取出错问题及解决_python_
2025-08-26
2人已围观
简介 python字典保存为json后读取出错问题及解决_python_
python字典保存为json后读取出错
json.load()读取json文件数据时,报错:XXXXXXXXX。
是因为在json文件中的引号为单引号,json.load()只能识别双引号。
避免报错的方式有三种
1、从保存文件时入手,刚开始就避免json文件中写入单引号。
json文件之所以写入单引号,大概率是在写入数据时,直接str(dict_data)字典转字符串,这种遗留问题就是不能用json.load()读取,写的时候应该用:json.dump(dict_data,file),一次写入到json文件中的字典是双引号的。
2、如果不想更换写入方式,或者数据是别人的,难么可以换读取方式。使用内置模块ast的literal_eval方法:
import ast ast.literal_eval(string)
3、直接使用python内置函数eval(string)
2和3的方法可以直接把字符串形式的json数据转为字典。
json文件转为str出现中文乱码问题
原来的代码是这样的
with open(fileName,'w',encoding='utf-8') as f: json.dump(AllResume,f)
当然用
temp = json.dumps(AllResume) with open(fileName,'w',encoding='utf-8') as f: f.write(temp) f.close()
得到的也是一样的结果。
出现的结果如下:
这是因为json.dumps或者json.dump 序列化时对中文默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False:
with open(fileName,'w',encoding='utf-8') as f: json.dump(AllResume,f,ensure_ascii=False)
此时得到的结果才是:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- 机器学习、深度学习和神经网络之间的区别和联系_python_
- 原神3.6劫波莲在哪 原神3.6劫波莲分布图_单机游戏_游戏攻略_
- 原神飘浮灵位置在哪 原神飘浮灵采集路线_单机游戏_游戏攻略_
- 原神3.6俱利鼓演奏顺序推荐 五个俱利鼓演奏攻略_单机游戏_游戏攻略_
- 原神3.6版本荒石苍漠草神瞳位置分布图一览 草神瞳位置大全_单机游戏_游戏攻略_
- 原神3.6丘丘游侠位置路线图 丘丘游侠位置大全_单机游戏_游戏攻略_
- 原神熔铁的孤塞秘境在哪 熔铁的孤塞秘境位置及进入方法_单机游戏_游戏攻略_
- 原神连通升降机附近的三个机关解密流程 连通升降机附近的三个机关攻略_单机游戏_游戏攻略_
- 原神碑文碎片在哪 碑铭的研究碑文碎片位置分享_单机游戏_游戏攻略_
- 原神36个净光翎全收集攻略 净光翎位置大全_单机游戏_游戏攻略_