【问题标题】:Append element into a json object python将元素附加到 json 对象 python
【发布时间】:2015-09-16 14:30:51
【问题描述】:

我有一个 Json 对象,每次输入新数字时我都会尝试添加一个新元素。 Json 看起来像这样:

[
    {
        "range": [1,2,3,4,5]
    }
]

这是我的代码:

import json

number = raw_input("enter a number: ")

json_file = 'json.json'
json_data = open(json_file)
data = json.load(json_data)
data.append({"range": number})
print data

例如,如果我的新号码是 10,我希望我的新 json 文档具有:[1, 2, 3, 4, 5, 10]。我的代码得到的输出是:

[{u'range': [1, 2, 3, 4, 5]}, {'range': '25'}]

我正在使用 python 2.6

【问题讨论】:

    标签: python json


    【解决方案1】:

    你需要这样的东西

    data[0]['range'].append(10)
    

    或者用int(your_number)代替10

    【讨论】:

    • 它的附加!但我得到它就像一个字符:[{u'range': [1, 2, 3, 4, 5, '10']}]。如何将其更改为数字?
    【解决方案2】:

    您的 json 对象包括:

    • 单元素列表
    • 列表的第一个元素是使用单个键(范围)进行映射
    • 这个键值是一个列表

    要附加到此列表,您必须:

    • 从列表中取出第一个元素 - data[0]
    • 从映射中获取正确的值 - data[0]['range']
    • 附加到检索列表 - data[0]['range'].append(new_value)

    【讨论】:

      【解决方案3】:

      首先要打开一个文件,你可以使用with 语句,它将在块的末尾关闭文件,你可以加载你的 json 文件,之后你可以有一个包含字典的列表可以使用索引 0 访问字典并使用 data[0]['range'] 访问列表值,最后您可以附加您的数字列表:

      import json
      
      number = raw_input("enter a number: ")
      
      json_file = 'json.json'
      with open(json_file) as json_data:
          data = json.load(json_data)
          data[0]['range'].append(int(number))
      print data
      

      【讨论】:

      • 谢谢!这就是我需要的!我会尽快接受你的回答。
      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 2022-09-26
      • 2017-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多