Json文件内容有误,解析失败
收藏
快速回复
AI Studio平台使用 问答Notebook项目 1484 4
Json文件内容有误,解析失败
收藏
快速回复
AI Studio平台使用 问答Notebook项目 1484 4

想把字典保存在本地json文件时遇到一个问题,json文件保存一次字典内容可以正常打开查看,但是保存两次及以上时打开json就会显示文件内容有误,解析失败,网上查了一堆没有可以直接修改代码成功的例子,求解。(PS:下载到本地是可以正常打开,但是我想在notebook里也可以查看)

a = dict(pic_id = 3, h =3 , w = 3, y = 3, x =3 , sign_id = 3, type = 3)
with open("tmp.json",'w',encoding='utf-8') as f:
    for i in range(1):
        json.dump(a, f)
print(a)

以上是保存一次字典时,json正常显示。但是按下面将字典循环两次写入到json,就不行了。

a = dict(pic_id = 3, h =3 , w = 3, y = 3, x =3 , sign_id = 3, type = 3)
with open("tmp.json",'w',encoding='utf-8') as f:
    for i in range(2):
        json.dump(a, f)
print(a)

0
收藏
回复
全部评论(4)
时间顺序
AIStudio810260
#2 回复于2020-07

一般这种情况就是json格式错了,既然下载到本地了可以检查下json格式对比的,不是本地能打开格式就没问题的,因为本地一般是打开文本,啥都能显示。

1
回复
AIStudio810258
#3 回复于2020-07

觉得直接保存numpy更方便,json总觉得操作起来很慢

1
回复
m
mar836924042
#4 回复于2020-07

问题解决了,代码里不能同时把多个dict保存在统一json文件里,会冲突。正确的做法是把多个dict合并成一个dict再保存到json里。

比如把两个a合并到b里,再保存

a = {"pic_id" : 3, "h" :3 , "w": 3, "y" : 3, "x" :3 , "sign_id" : 3, "type" : 3}
b = {"0" : a, "1" : a}
with open("tmp.json",'w',encoding='utf-8') as f:
    json.dump(b, f)
print(a)
print(b)
0
回复
m
mar836924042
#5 回复于2020-07
觉得直接保存numpy更方便,json总觉得操作起来很慢

是在制作数据集,看官方的好多都使用json,所以也尝试一下,字典读取确实挺慢的

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户