python 获取列表中的字典值

标签 python list dictionary

我的头一直撞在 table 上! 我有一个以 json 格式下载的网址,然后将 parsed_json = json.loads(response_body) 转换为 python 字典。问题是所需的数据(嵌入在字典中的列表中)位于名为列表的字典中。如果我进行字典计数或键或任何其他操作,我只会得到第一个级别 3,而实际上有 37 个字典。

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

一周后,我无法弄清楚如何从列表中的字典中获取所有值,我可以通过使用类似的方法来获取一个值,但我无法增加计数。

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

这是一个 digi xbee 云获取,获取值后需要对某些值进行一些数学运算,因为结果以 MV 为单位,而不是 C 度。 任何方向都可以使值(value)得到极大的赞赏。

数据片段:

{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',

最佳答案

这应该有效:

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 新手,请开始与 Python 3 一起使用。Python 2 是旧版 Python。

关于python 获取列表中的字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33860343/

相关文章:

python - Bootstrap 导航菜单下拉菜单不起作用

python - 如何将子流程输出保存为字符串列表以供进一步分析?

python - 如何使用 WTForms 填充对象列表?

java - 决定从 fooService.getFoos() 实例化 List<Foo> foo 的不同方法

c# - 我能有一本按日期排序的字典吗

python - 在哪里放置 python 单元测试

python - 列表中的随机列表,不重复

Python - 列表的追加和排序

java - 使用 JSON 返回 Java Map

vb.net - 如何在VB.NET中检查字典是否为空?