将元素追加到json对象python中

时间:2015-09-16 14:30:52

标签: python json

我有一个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

3 个答案:

答案 0 :(得分:1)

你需要这样的东西

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

或使用int(your_number)代替10

答案 1 :(得分:1)

您的json对象包含:

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

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

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

答案 2 :(得分:0)

首先打开文件你可以使用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