繁体   English   中英

在python中将新数据附加到json文件

[英]append new data to json file in python

我在data.json文件中有json数组

[{"type": "Even", "id": 1}, {"type": "Odd", "id": 2}, {"type": "Even", "id": 3}]

我试图使用此代码将新数据附加到此json文件

    def foo(filename, dict_data):
    with open(filename, 'r') as json_data: 
        data = json.load(json_data)

    data.append(dict_data)

    with open(filename, 'w') as json_data: 
        json.dump(data, json_data)

    foo('data.json', lst)

但我得到了这个结果

[{"id": 1, "type": "Even"}, {"id": 2, "type": "Odd"}, {"id": 3, "type": "Even"}, [{"id": 4, "type": "Even new"}, {"id": 5, "type": "Odd new"}`]]

但这是一个无效的json数据。 我的预期数据是

    [{"id": 1, "type": "Even"}, {"id": 2, "type": "Odd"}, {"id": 3, "type": "Even"}, {"id": 4, "type": "Even new"}, {"id": 5, "type": "Odd new"}`]

我究竟做错了什么。?

看起来像你的变量dict_data不包含一个dict ,而是一个listdict秒。 .append荷兰国际集团是list外的内部list ,从而产生嵌套结构

如果是这种情况,那么只需使用.extend将原始list扩展为另一个list

data.extend(dict_data)

考虑将变量dict_data的名称更改为更有意义的名称,因为读取代码会让人感到困惑,因为它甚至没有dict

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM