python获取列表中的字典值

2024-09-28 05:19:51 发布

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

我的头一直撞在桌子上! 我有一个用json下载的url,然后解析为json.loads文件(对python字典的响应)。问题是所需的数据(嵌入dicts中的数据在list中)在一个名为list的字典中。如果我做一个dict count或key或者其他什么的话,我得到的第一个级别是3,而实际上有37个dict。你知道吗

for key, value in parsed_json.iteritems() :
    print key, value

一个星期后,我不知道如何从列表中的dict中获取所有值,我可以使用类似的方法获取一个值,但是我不能增加计数。你知道吗

print parsed_json['list'][(1)]['value']

这是一个digi-xbee云获取,在获取值之后,需要对一些进行一些计算,因为结果是MV而不是C度。 任何方向的价值观得到极大的赞赏。你知道吗

数据片段:

{u'count': 37,
 u'list': [{u'history_uri': u'/ws/v1/streams/history/00000000-00000000-00409DFF-FF818A13/management/connections',
            u'id': u'00000000-00000000-00409DFF-FF818A13/management/connections',
            u'server_timestamp': u'2015-11-21T04:21:45.407Z',
            u'timestamp': u'2015-11-21T04:21:45.269Z',
            u'type': u'JSON',
            u'value': u'{"connectTime":"2015-11-21T04:21:45.269Z","type":"Ethernet","remoteIp":"72.38.16.255","localIp":"192.168.2.106","session":"17c6e5d2-3d9d-439b-aa8a-36f050bf8b9c"}'},
           {u'history_uri': u'/ws/v1/streams/history/00000000-00000000-00409DFF-FF818A13/xbee.analog/[00:13:A2:00:40:D5:8F:0A]!/AD1',
            u'id': u'00000000-00000000-00409DFF-FF818A13/xbee.analog/[00:13:A2:00:40:D5:8F:0A]!/AD1',
            u'server_timestamp': u'2015-11-22T08:14:15.945Z',
            u'timestamp': u'2015-11-22T08:14:09.101Z',
            u'type': u'INTEGER',
            u'value': u'1'},
           {u'history_uri': u'/ws/v1/streams/history/00000000-00000000-00409DFF-FF818A13/xbee.analog/[00:13:A2:00:40:D5:8F:0A]!/AD2',
            u'id': u'00000000-00000000-00409DFF-FF818A13/xbee.analog/[00:13:A2:00:40:D5:8F:0A]!/AD2',
            u'server_timestamp': u'2015-11-22T08:14:15.964Z',
            u'timestamp': u'2015-11-22T08:14:09.377Z',
            u'type': u'INTEGER',
            u'value': u'613'},
           {u'history_uri': u'/ws/v1/streams/history/00000000-00000000-00409DFF-FF818A13/xbee.analog/[00:13:A2:00:40:D5:8F:0A]!/AD3',
            u'id': u'00000000-00000000-00409DFF-FF818A13/xbee.analog/[00:13:A2:00:40:D5:8F:0A]!/AD3',
            u'server_timestamp': u'2015-11-22T08:14:15.930Z',
            u'timestamp': u'2015-11-22T08:14:08.854Z',
            u'type': u'INTEGER',
            u'value': u'852'},
           {u'history_uri': u'/ws/v1/streams/history/00000000-00000000-00409DFF-FF818A13/xbee.analog/[00:13:A2:00:40:D5:8F:50]!/AD1',
            u'id': u'00000000-00000000-00409DFF-FF818A13/xbee.analog/[00:13:A2:00:40:D5:8F:50]!/AD1',
            u'server_timestamp': u'2015-11-22T08:14:15.834Z',
            u'timestamp': u'2015-11-22T08:14:07.477Z',
            u'type': u'INTEGER',
            u'value': u'0'},
           {u'history_uri': u'/ws/v1/streams/history/00000000-00000000-00409DFF-FF818A13/xbee.analog/[00:13:A2:00:40:D5:8F:50]!/AD2',

Tags: ida2wsservervaluetypeurihistory
2条回答

如果我理解正确的话,您只需要一个包含dicts中所有值的列表。如果你的意思是别的,让我知道,这样我可以给你另一个答案:

lst = []
for dict in parsed_json:
  for key in dict:
      lst.append(dict[key])

这应该起作用:

for index in range(parsed_json['count']):
    print(parsed_json['list'][index]['value'])

或更简单:

for item in parsed_json['list']:
    print(item['value'])

您可以通过迭代items()来打印所有键值对

for entry in parsed_json['list']:
    for key, value in entry.items():
        print(key)
        print('    ', value)

在Python 2中写print ' ', value,因为print在Python 3中是函数,但在Python 2中仍然是语句。如果您不熟悉Python,请从python3开始。python2是传统的Python。你知道吗

相关问题 更多 >

    热门问题