Python3,迭代到没有名称的JSON数组

时间:2018-02-21 12:57:20

标签: python arrays json

我正在尝试迭代这个json数组:

[{
    "date": "2018-02-21T12:53:00",
    "name": "System date",
    "ID_BBData": "none",
    "TOKEN_BBData": "none",
    "rawValue": 540916682
},
{
    "date": "2018-02-21T12:53:00",
    "name": "Temperature sensor 1",
    "ID_BBData": "none",
    "TOKEN_BBData": "none",
    "rawValue": 11
},
{
    "date": "2018-02-21T12:53:00",
    "name": "Value week",
    "ID_BBData": "none",
    "TOKEN_BBData": "none",
    "rawValue": 1810
}]

有了这个循环:

# print the keys and values
for key in jsonObject:
    value = jsonObject[key]
    print("The key and value are ({}) = ({})".format(key, value))

其中jsonObject是上面的json。 问题是json被[]括起来,但是这个数组没有任何名称。

有什么线索来迭代这个吗?

非常感谢!

3 个答案:

答案 0 :(得分:1)

首先,您应该了解您的对象是字典列表。如果将数据放入变量(例如lst),然后检查类型:

,则可以轻松地检查这一点
>>> lst
[{'date': '2018-02-21T12:53:00', 'name': 'Temperature sensor 1', 'ID_BBData': 'none', 'TOKEN_BBData': 'none', 'rawValue': 11}, {'date': '2018-02-21T12:53:00', 'name': 'Value week', 'ID_BBData': 'none', 'TOKEN_BBData': 'none', 'rawValue': 1810}]
>>> type(lst)  # the type of the whole datastructure
<class 'list'>

>>> type(lst[0])  # the type of the first element of the list
<class 'dict'>

如果您了解,您有这样的结构,您可以开始考虑循环列表中的项目,其中每个项目都是字典:

>>> for lst_item in lst:
...     for key, value in lst_item.items():  # this is python3 specific
...         print('key: {} value: {}'.format(key, value))
... 
key: date value: 2018-02-21T12:53:00
key: name value: Temperature sensor 1
key: ID_BBData value: none
key: TOKEN_BBData value: none
key: rawValue value: 11
key: date value: 2018-02-21T12:53:00
key: name value: Value week
key: ID_BBData value: none
key: TOKEN_BBData value: none
key: rawValue value: 1810

如果要在python2中迭代字典,请使用

for key, value in lst_item.iteritems():

代替。

答案 1 :(得分:0)

如果要迭代所有列表元素(如注释中所述,它是列表而不是json对象):

for line in jsonObject:
    for key, value in line.items():
        print("The key and value are ({}) = ({})".format(key, value))

答案 2 :(得分:0)

首先转换json数组,然后执行python编码以获取值。

data = json.loads(array)