添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Python通过循环向JSON文件追加新的Lists

0 人关注

我想在一个for循环中更新一个JSON文件

在for循环中,我有以下代码。

with open('immodata.json', 'a') as file:
    json.dump([{'preis' : priceList, 'plz' : plzList, 'zimmer' : roomList, 'wohnflaeche' : sqrList} for priceList, plzList, roomList, sqrList in zip(priceList, plzList, roomList, sqrList)], file)

问题是这是把新的数据作为唯一的数据加入,而不是继续JSON。

我得到了什么。

[{"preis": "1750000", "plz": "5222", "zimmer": "5.5", "wohnflaeche": "185"}][{"preis": "1750000", "plz": "5222", "zimmer": "5.5", "wohnflaeche": "185"}]

我想要什么。

[{"preis": "1750000", "plz": "5222", "zimmer": "5.5", "wohnflaeche": "185"}, {"preis": "1650000", "plz": "5222", "zimmer": "5.5", "wohnflaeche": "155"}

我想我必须读出文件,将新的数据添加到列表中,然后追加到JSON文件中,但我没有发现我将如何做到这一点。

4 个评论
假设你有一个json文件,我会用 json.load 读入文件内容,然后用 += 追加到列表中,再把更新的数据写回文件中。
请显示(初始)列表。另外,作为一个建议,在迭代时不要使用相同的名字。
你不能只是在json文件中添加一个 "补充",因为你至少需要改变源文件中的最后一个字符。因此,下载整个文件,然后根据你的需要进行修改,然后覆盖得到的文件。
谢谢大家的评论,我解决了这个问题
python
json
append
Seider9999
Seider9999
发布于 2022-09-09
1 个回答
Seider9999
Seider9999
发布于 2022-09-09
已采纳
0 人赞同

好吧,感谢我问题下面的评论,我能够解决这个问题。

json_data = []
#GET OLD LIST
if exists('immodata.json'):
    with open ('immodata.json') as json_file:
     json_data = json.load(json_file)
else:
    with open('immodata.json', 'a') as file:
        print("Created new immodata.json File")
#CREATE THE NEW LIST
new_list = [{'preis': priceList, 'plz': plzList, 'zimmer': roomList, 'wohnflaeche': sqrList} for priceList, plzList, roomList, sqrList in zip(priceList, plzList, roomList, sqrList)]
#ADD THE NEW LIST TO THE OLD
json_data += new_list