[英]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
,而是一个list
的dict
秒。 你.append
荷兰国际集团是list
外的内部list
,从而产生嵌套结构
如果是这种情况,那么只需使用.extend
将原始list
扩展为另一个list
:
data.extend(dict_data)
考虑将变量dict_data
的名称更改为更有意义的名称,因为读取代码会让人感到困惑,因为它甚至没有dict
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.