Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python在列表中获取字典值_Python_List_Dictionary - Fatal编程技术网

python在列表中获取字典值

python在列表中获取字典值,python,list,dictionary,Python,List,Dictionary,我的头一直撞在桌子上! 我有一个用json下载的url,然后解析为_json=json.loads(response_body)到python字典。问题是所需的数据(嵌入dicts中的数据在list中)在一个名为list的字典中。如果我做一个dict计数或键或任何事情,我只得到第一级3,而实际上有37个dict for key, value in parsed_json.iteritems() : print key, value 一周后,我不知道如何从列表中的dict中获取所有值,我

我的头一直撞在桌子上! 我有一个用json下载的url,然后解析为_json=json.loads(response_body)到python字典。问题是所需的数据(嵌入dicts中的数据在list中)在一个名为list的字典中。如果我做一个dict计数或键或任何事情,我只得到第一级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',

如果我理解正确的话,您只需要一个包含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()


在Python2中写入
print'',value
,因为
print
在Python3中是一个函数,但在Python2中仍然是一个语句。如果您是Python新手,请从Python 3开始。Python2是传统的Python。

谢谢,我不确定第二个是否更简单,因为它们都只有两行,但它更简洁。而且他们都能工作!!现在,如何使用一个print语句获取多个数据值“字段”?到目前为止,我尝试的一切都没有奏效,但我对python非常陌生。在>20年内没有写过任何代码。计算出了多个值,不确定是否是最好的方法,但它可以工作。打印(项['timestamp']),(项['id']),(项['value'])您可以在每个列表项中循环所有字典项。我加了一个例子。@Mikemeller谢谢你,Mike,Mueller博士,我认为这或数据有问题。如果我同时运行这两个print语句,就会得到10889行,其中一个唯一的数据值重复了51次。如果我只运行底部的print语句,我会得到6498行,其中有相同的唯一数据值,重复59次。如果我将dict转换为xml,则有457行。我是python新手,但Digi API和ESP(IDE)是基于2.7的。如果您愿意,我可以通过电子邮件将数据文件发送到academy。请将该文件发送到其他地方,以便所有人都可以使用。
for entry in parsed_json['list']:
    for key, value in entry.items():
        print(key)
        print('    ', value)