簡體   English   中英

python在列表中獲取字典值

[英]python getting dictionary values in lists

被我的頭撞在桌子上! 我有一個在json中下載的網址,然后parsed_json = json.loads(response_body)到python字典。 問題在於所需的數據(嵌入字典的數據在列表中)在名為list的字典中。 如果我進行格數或鍵或其他任何事情,我實際上只有37個格才達到第3級。

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

一個星期后,我無法弄清楚如何從列表中的字典中獲取所有值,我可以使用類似的方法來獲取一個值,但無法增加計數。

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

這應該工作:

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因為在Python 3中print是函數,但在Python 2中仍然是語句print ' ', value所以要寫print ' ', value 。如果您不熟悉Python,請從Python 3開始。Python2是舊版Python。

如果我理解正確,那么您只想要一個包含字典中所有值的列表。 如果您的意思是別的,請告訴我,以便我給您另一個答案:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM