我的c.json
文件中包含以下数据:
{
"192.168.0.129": {
"username": "me",
"streaming": "Spotify",
"name": "John",
"email": "john@gmail.com"
}
}
以及我要将其附加到的其他数据:
new_data = {'next_songs': ['song1', 'song2']}
为此目的,我这样做:
with open('c.json', 'r') as json_data:
data = json.load(json_data)
data.update(new_data)
with open('c.json', 'w') as json_data:
json.dump(data, json_data, indent=4)
这有效,但不是很好,因为我得到了:
{
"next_songs": [
"song1",
"song2"
],
"192.168.0.129": {
"username": "me",
"streaming": "Spotify",
"name": "John",
"email": "john@gmail.com"
}
}
我希望附加数据成为键"192.168.0.129"
下的值,如下所示:
{
"192.168.0.129": {
"username": "me",
"streaming": "Spotify",
"name": "John",
"email": "john@gmail.com"
"new_data": ["song1", "song2"],
}
}
我该如何实现这个目标?
答案 0 :(得分:1)
只应更新某个dict属性"192.168.0.129"
(这是内部字典),而不是整个主要字典:
...
data["192.168.0.129"].update(new_data)
答案 1 :(得分:1)
看起来您可能正在更新错误的词典
data.update(new_data)
应为data["192.168.0.129"].update(new_data)