[英]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.