【问题标题】:Add element to a JSON file?将元素添加到 JSON 文件?
【发布时间】:2014-04-13 08:08:57
【问题描述】:

我正在尝试将元素添加到 python 中的 json 文件,但我无法做到。

这是我到现在为止尝试过的(我删除了一些变化):

import json

data = [ { 'a':'A', 'b':(2, 4), 'c':3.0 } ]
print 'DATA:', repr(data)

var = 2.4
data.append({'f':var})
print 'JSON', json.dumps(data)

但是,我得到的是:

DATA: [{'a': 'A', 'c': 3.0, 'b': (2, 4)}]
JSON [{"a": "A", "c": 3.0, "b": [2, 4]}, {"f": 2.4}]

这很好,因为我还需要它来添加一个新行而不是一个元素,但我想得到这样的东西:

[{'a': 'A', 'c': 3.0, 'b': (2, 4), "f":2.4}]

我应该如何添加新元素?

【问题讨论】:

  • 我认为这里要理解的是,您在列表中嵌入了一个字典,当您追加时,您添加了一个新元素,它是一个新字典。如果您想添加到字典,那么您应该访问字典并添加新元素,如@Jayanth 所示

标签: python json


【解决方案1】:

你可以这样做。

data[0]['f'] = var

【讨论】:

【解决方案2】:

你也可以这样做

iter(data).next()['f'] = var

【讨论】:

    【解决方案3】:

    我看到的一个可能的问题是您在数组/列表对象中非常规地设置了 JSON。我会推荐以最被接受的形式使用 JSON,即:

    test_json = { "a": 1, "b": 2}
    

    完成此操作后,添加 json 元素只涉及以下行:

    test_json["c"] = 3
    

    这将导致:

    {'a': 1, 'b': 2, 'c': 3}
    

    之后,您可以将该 json 添加回所需的数组或列表中。

    【讨论】:

    • 如果我想将 3 添加到 b 中怎么办? {'a': 1, 'b': 2,3} 怎么办?
    猜你喜欢
    • 2022-11-16
    • 2022-01-20
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多