有一个music.json文件:
{
"object": [
{
"singer": [
{
"id": 2,
"first_name": "Jenifer",
"last_name": "Lopez"
}
]
}
],
"song": [
{
"executor_id": 2,
"song_name": "Papi",
"source_song": "https://sefon.pro/artist/2169-jenifer-lopez/",
"repeat": 0
}
]
}
新条目必须写入主对象,如下所示:
{
... (существующая структура)
"object" [
{
"singer": [...],
"song": [...]
}
]
}
也就是说,应该重复第一个版本的代码......为了写入新记录而不删除现有记录,您需要打开文件,显然,我像这样打开文件:
with open("music.json", "a+") as file:
тут тупик :-D
我不知道如何添加这样的新条目:
{
...
"object": [...]
}
我尝试json.load(file)首先获取文件的内容并添加如下内容:
with open("music.json", "a+") as file:
data = json.load(file)
data["object"][1] = to_json
json.dump(data,file)
已经有错误...请告诉我该怎么做...
这是一本字典,它有一个带有 key 的条目
object。您不能向字典写入另一个键object,字典的键不能重复。读到这里json要么出错,要么只剩下一个键,我懒得查了。你需要改变一下结构
json,比如把这些全部放在一个列表中,元素可以在列表中重复,也可以重复,比如字典:好吧,要么您需要将元素添加到列表
object和song,然后您需要这样做:嗯,是的,
json你需要完整地阅读它,修改它,然后完整地写下来。如果该键已经在字典中。然后python会覆盖最后一个。为了理解:
前提是密钥存在:
为一个键添加并形成多个值(这是可能的),但那是另一回事了。