向Json列表添加元素(Python)

2024-10-01 00:20:37 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我正努力向保存在我机器上的json列表添加一个元素。我尝试的是json将随着用户输入的消息进行更新。应为“获取JSONDEM行的值时出错:0”

        with open(JSON_FILE, "r+") as data_file:
            data = json.load(data_file)
            data[0]['test'].append(enteredString)
            json.dump(data, data_file)

这是我要更新的Json。在

^{pr2}$

我想要它,这样新保存的json文件将是。在

{"test": [
  "test 1",
  "test 2",
  "New String"
]}

我不知道我做错了什么,如果能帮上忙我会很感激的。在


Tags: 用户test机器json消息元素列表data
2条回答

看起来您需要从第3行删除[0]索引操作……您的JSON是其顶层的对象,而不是列表。因此,如果没有索引0,就不需要在索引“0”处获取元素。在

with open(JSON_FILE, "r+") as data_file:
            data = json.load(data_file)
            data['test'].append(enteredString)
            json.dump(data, data_file)

代码中有两个问题:

1)若要引用列表,请使用data['test']data['test'][0]是“test 1”中的第一个“t”

2)要覆盖输出文件,需要先关闭文件并重新打开。在编写时,代码将附加到JSON_文件中。在

以下是正确的代码:

data = json.load(open(JSON_FILE, "rb"))
data['test'].append(enteredString)
json.dump(data, open(JSON_FILE, "wb"))

相关问题 更多 >