我有一个json格式数据。我想从中提取一些有用的数据,所以我需要使用一些循环来完成它。 这是我的代码:
data=json.loads(res.text)
for item in data['leagues'][0]['events']:
for xx in item['periods']:
if 'moneyline' in xx.keys():
md=xx['moneyline']
print(md)
我得到了这样的结果:
{'远离':303.0,'家庭':116.0,'画':223.0}
{'远离':1062.0,'回家':-369.0,'画':577.0}
{'远离':337.0,'家庭':109.0,'画':217.0}
{'远离':297.0,'家庭':110.0,'画':244.0}
{'远离':731.0,'家庭':-240.0,'画':415.0}
如何将这些单独的数据合并为词典形式?
我将代码修改为:
data=json.loads(res.text)
dlist=[]
for item in data['leagues'][0]['events']:
for xx in item['periods']:
if 'moneyline' in xx.keys():
d=xx['moneyline']
dlist.append(d)
print(dlist)
由于
答案 0 :(得分:0)
我建议您使用列表来存储md
中的xx['moneyline']
词典,并将此词典的键存储在另一个词典中,您将存储md
的所有值字典。对于每个键,列表将值存储在原始md
字典中。结果将是这样的:
{'home': [116.0, -369.0, 109.0, 110.0, -240.0], 'away': [303.0, 1062.0, 337.0, 297.0, 731.0], 'draw': [223.0, 223.0, 223.0, 223.0, 223.0, 223.0, 223.0, 223.0, 223.0, 223.0, 223.0, 223.0, 223.0, 223.0, 223.0, 223.0, 577.0, 217.0, 244.0, 415.0]}
第1步:
data=json.loads(res.text)
list_dictionary = [] #Initialise an empty list to store the dictionaries
for item in data['leagues'][0]['events']:
for xx in item['periods']:
if 'moneyline' in xx.keys():
md=xx['moneyline']
list_dictionary.append(md). #Append dictionary item to the list
步骤2:获取有关md
字典中密钥的信息,并将这些密钥存储在空字典中。初始化空字典中所有键的空列表。
dictionary={}
for key in md.keys():
dictionary.update({key:[]})
步骤3:迭代在步骤1中获得的list_dictionary,并对此列表中的每个md
字典更新dictionary
所有值。
for dict in list_dictionary:
for key, value in dict():
dictionary[key].append(value)
这是您可以在单个词典中获取所有信息的方法,其中键对应于值列表。
data=json.loads(res.text)
list_dictionary = [] #Initialise an empty list to store the dictionaries
dictionary={} #Initialise an empty dictionary to store all the retrieved data as `md`
for item in data['leagues'][0]['events']:
for xx in item['periods']:
if 'moneyline' in xx.keys():
md=xx['moneyline']
list_dictionary.append(md). #Append dictionary item to the list
for key in md.keys():
dictionary.update({key:[]})
#Store all the `md` values in dictionary as list
for dict in list_dictionary:
for key, value in dict.iteritems():
dictionary[key].append(value)