如何将此字典列表转换成字典?

时间:2018-12-06 17:05:09

标签: python

我正在尝试将此包含字典的列表转换为字典。 从此列表中,我有兴趣删除 PREDICTION 列,因为它包含另一个词典,并将 PREDICTION 转储到具有行和列的.csv文件中。

此处设置了完整数据:

[{'origen': {'productor': 'AGENCY', 'site': 'www.example.com', 'link': 'www.example.com, 'language': 'en', 'copyright': 'YES', 'law': 'Example'}, 'creation_date': '2018-12-06', 'Name': 'UK', 'city': 'londo', 'PREDICTION': {'dia': [{'probPrecipitacion': [{'value': 0, 'periodo': '00-24'}, {'value': 0, 'periodo': '00-12'}, {'value': 0, 'periodo': '12-24'}, {'value': 0, 'periodo': '00-06'}, {'value': 0, 'periodo': '06-12'}, {'value': 0, 'periodo': '12-18'}, {'value': 0, 'periodo': '18-24'}], 'cotaNieveProv': [{'value': '', 'periodo': '00-24'}, {'value': '', 'periodo': '00-12'}, {'value': '', 'periodo': '12-24'}, {'value': '', 'periodo': '00-06'}, {'value': '', 'periodo': '06-12'}, {'value': '', 'periodo': '12-18'}, {'value': '', 'periodo': '18-24'}], 'estadoCielo': [{'value': '', 'periodo': '00-24', 'descripcion': ''}, {'value': '', 'periodo': '00-12', 'descripcion': ''}, {'value': '11', 'periodo': '12-24', 'descripcion': 'Despejado'}, {'value': '', 'periodo': '00-06', 'descripcion': ''}, {'value': '11', 'periodo': '06-12', 'descripcion': 'Despejado'}, {'value': '11', 'periodo': '12-18', 'descripcion': 'Despejado'}, {'value': '11n', 'periodo': '18-24', 'descripcion': 'Despejado'}], 'viento': [{'direccion': '', 'velocidad': 0, 'periodo': '00-24'}, {'direccion': '', 'velocidad': 0, 'periodo': '00-12'}, {'direccion': 'C', 'velocidad': 0, 'periodo': '12-24'}, {'direccion': 'C', 'velocidad': 0, 'periodo': '00-06'}, {'direccion': 'C', 'velocidad': 0, 'periodo': '06-12'}, {'direccion': 'C', 'velocidad': 0, 'periodo': '12-18'}, {'direccion': 'NE', 'velocidad': 5, 'periodo': '18-24'}], 'rachaMax': [{'value': '', 'periodo': '00-24'}, {'value': '', 'periodo': '00-12'}, {'value': '', 'periodo': '12-24'}, {'value': '', 'periodo': '00-06'}, {'value': '', 'periodo': '06-12'}, {'value': '', 'periodo': '12-18'}, {'value': '', 'periodo': '18-24'}], 'temperatura': {'maxima': 14, 'minima': 4, 'dato': [{'value': 5, 'hora': 6}, {'value': 12, 'hora': 12}, {'value': 11, 'hora': 18}, {'value': 6, 'hora': 24}]}, 'sensTermica': {'maxima': 14, 'minima': 4, 'dato': [{'value': 5, 'hora': 6}, {'value': 12, 'hora': 12}, {'value': 11, 'hora': 18}, {'value': 6, 'hora': 24}]}, 'humedadRelativa': {'maxima': 95, 'minima': 60, 'dato': [{'value': 95, 'hora': 6}, {'value': 60, 'hora': 12}, {'value': 75, 'hora': 18}, {'value': 80, 'hora': 24}]}, 'uvMax': 2, 'fecha': '2018-12-06'}, {'probPrecipitacion': [{'value': 0, 'periodo': '00-24'}, {'value': 0, 'periodo': '00-12'}, {'value': 0, 'periodo': '12-24'}, {'value': 0, 'periodo': '00-06'}, {'value': 0, 'periodo': '06-12'}, {'value': 0, 'periodo': '12-18'}, {'value': 0, 'periodo': '18-24'}], 'cotaNieveProv': [{'value': '', 'periodo': '00-24'}, {'value': '', 'periodo': '00-12'}, {'value': '', 'periodo': '12-24'}, {'value': '', 'periodo': '00-06'}, {'value': '', 'periodo': '06-12'}, {'value': '', 'periodo': '12-18'}, {'value': '', 'periodo': '18-24'}], 'estadoCielo': [{'value': '11', 'periodo': '00-24', 'descripcion': 'Despejado'}, {'value': '11', 'periodo': '00-12', 'descripcion': 'Despejado'}, {'value': '11', 'periodo': '12-24', 'descripcion': 'Despejado'}, {'value': '11n', 'periodo': '00-06', 'descripcion': 'Despejado'}, {'value': '11', 'periodo': '06-12', 'descripcion': 'Despejado'}, {'value': '11', 'periodo': '12-18', 'descripcion': 'Despejado'}, {'value': '11n', 'periodo': '18-24', 'descripcion': 'Despejado'}], 'viento': [{'direccion': 'S', 'velocidad': 10, 'periodo': '00-24'}, {'direccion': 'S', 'velocidad': 10, 'periodo': '00-12'}, {'direccion': 'S', 'velocidad': 10, 'periodo': '12-24'}, {'direccion': 'N', 'velocidad': 5, 'periodo': '00-06'}, {'direccion': 'S', 'velocidad': 10, 'periodo': '06-12'}, {'direccion': 'C', 'velocidad': 0, 'periodo': '12-18'}, {'direccion': 'O', 'velocidad': 5, 'periodo': '18-24'}], 'rachaMax': [{'value': '', 'periodo': '00-24'}, {'value': '', 'periodo': '00-12'}, {'value': '', 'periodo': '12-24'}, {'value': '', 'periodo': '00-06'}, {'value': '', 'periodo': '06-12'}, {'value': '', 'periodo': '12-18'}, {'value': '', 'periodo': '18-24'}], 'temperatura': {'maxima': 14, 'minima': 2, 'dato': [{'value': 2, 'hora': 6}, {'value': 10, 'hora': 12}, {'value': 9, 'hora': 18}, {'value': 8, 'hora': 24}]}, 'sensTermica': {'maxima': 14, 'minima': 2, 'dato': [{'value': 2, 'hora': 6}, {'value': 10, 'hora': 12}, {'value': 9, 'hora': 18}, {'value': 8, 'hora': 24}]}, 'humedadRelativa': {'maxima': 90, 'minima': 55, 'dato': [{'value': 90, 'hora': 6}, {'value': 65, 'hora': 12}, {'value': 80, 'hora': 18}, {'value': 80, 'hora': 24}]}, 'uvMax': 2, 'fecha': '2018-12-07'}, {'probPrecipitacion': [{'value': 0, 'periodo': '00-24'}, {'value': 0, 'periodo': '00-12'}, {'value': 0, 'periodo': '12-24'}], 'cotaNieveProv': [{'value': '', 'periodo': '00-24'}, {'value': '', 'periodo': '00-12'}, {'value': '', 'periodo': '12-24'}], 'estadoCielo': [{'value': '12', 'periodo': '00-24', 'descripcion': 'Poco nuboso'}, {'value': '12', 'periodo': '00-12', 'descripcion': 'Poco nuboso'}, {'value': '12', 'periodo': '12-24', 'descripcion': 'Poco nuboso'}], 'viento': [{'direccion': 'C', 'velocidad': 0, 'periodo': '00-24'}, {'direccion': 'O', 'velocidad': 5, 'periodo': '00-12'}, {'direccion': 'C', 'velocidad': 0, 'periodo': '12-24'}], 'rachaMax': [{'value': '', 'periodo': '00-24'}, {'value': '', 'periodo': '00-12'}, {'value': '', 'periodo': '12-24'}], 'temperatura': {'maxima': 13, 'minima': 5, 'dato': []}, 'sensTermica': {'maxima': 13, 'minima': 5, 'dato': []}, 'humedadRelativa': {'maxima': 90, 'minima': 65, 'dato': []}, 'uvMax': 2, 'fecha': '2018-12-08'}, {'probPrecipitacion': [{'value': 0, 'periodo': '00-24'}, {'value': 0, 'periodo': '00-12'}, {'value': 0, 'periodo': '12-24'}], 'cotaNieveProv': [{'value': '', 'periodo': '00-24'}, {'value': '', 'periodo': '00-12'}, {'value': '', 'periodo': '12-24'}], 'estadoCielo': [{'value': '12', 'periodo': '00-24', 'descripcion': 'Poco nuboso'}, {'value': '12', 'periodo': '00-12', 'descripcion': 'Poco nuboso'}, {'value': '11', 'periodo': '12-24', 'descripcion': 'Despejado'}], 'viento': [{'direccion': 'C', 'velocidad': 0, 'periodo': '00-24'}, {'direccion': 'NE', 'velocidad': 5, 'periodo': '00-12'}, {'direccion': 'C', 'velocidad': 0, 'periodo': '12-24'}], 'rachaMax': [{'value': '', 'periodo': '00-24'}, {'value': '', 'periodo': '00-12'}, {'value': '', 'periodo': '12-24'}], 'temperatura': {'maxima': 15, 'minima': 4, 'dato': []}, 'sensTermica': {'maxima': 15, 'minima': 4, 'dato': []}, 'humedadRelativa': {'maxima': 95, 'minima': 65, 'dato': []}, 'uvMax': 2, 'fecha': '2018-12-09'}, {'probPrecipitacion': [{'value': 0}], 'cotaNieveProv': [{'value': ''}], 'estadoCielo': [{'value': '12', 'descripcion': 'Poco nuboso'}], 'viento': [{'direccion': 'NE', 'velocidad': 10}], 'rachaMax': [{'value': ''}], 'temperatura': {'maxima': 14, 'minima': 4, 'dato': []}, 'sensTermica': {'maxima': 14, 'minima': 4, 'dato': []}, 'humedadRelativa': {'maxima': 80, 'minima': 55, 'dato': []}, 'uvMax': 0, 'fecha': '2018-12-10'}, {'probPrecipitacion': [{'value': 5}], 'cotaNieveProv': [{'value': ''}], 'estadoCielo': [{'value': '17', 'descripcion': 'Nubes altas'}], 'viento': [{'direccion': 'C', 'velocidad': 0}], 'rachaMax': [{'value': ''}], 'temperatura': {'maxima': 12, 'minima': 3, 'dato': []}, 'sensTermica': {'maxima': 12, 'minima': 3, 'dato': []}, 'humedadRelativa': {'maxima': 95, 'minima': 60, 'dato': []}, 'fecha': '2018-12-11'}, {'probPrecipitacion': [{'value': 65}], 'cotaNieveProv': [{'value': '1700'}], 'estadoCielo': [{'value': '24', 'descripcion': 'Nuboso con lluvia'}], 'viento': [{'direccion': 'C', 'velocidad': 0}], 'rachaMax': [{'value': ''}], 'temperatura': {'maxima': 10, 'minima': 2, 'dato': []}, 'sensTermica': {'maxima': 10, 'minima': 2, 'dato': []}, 'humedadRelativa': {'maxima': 100, 'minima': 85, 'dato': []}, 'fecha': '2018-12-12'}]}, 'id': 28079, 'version': 1.0}]

示例数据集:

  

[{'origen':{'productor':'agency','site':'www.example.com','link':   'www.example.com,'语言':'zh','版权':'是','法律':   'example'},'creation_date':'2018-12-06','Name':'uk','city':   'london','PREDICTION':{'dia':[{'probPrecipitacion':[{'value':0,   'periodo':'00 -24'},{'value':0,'periodo':'00 -12'},{'value':0,   'periodo':'12 -24'},{'value':0,'periodo':'00 -06'},{'value':0,   'periodo':'06 -12'},{'value':0,'periodo':'12 -18'},'id':28079,   'version':1.0}]

我正在尝试使用熊猫:

predictions = pd.DataFrame (dataset)
predictions ['prediction']

输出:

  

0 [{'probPrecipitacion':[{'value':0,'periodo'...

我想在行和列中加载OUPUT的结果。

1 个答案:

答案 0 :(得分:0)

您发布的示例一团糟,很难理解。

这是一种打印数据并对其进行可视化的简单方法。

import pprint
myDataset = {} #insert your dataset into this
pprint.pprint(myDataset)

查看您提供的数据集,您应该可以通过以下方式访问预测:

pred = myDataset[0]['origen']['PREDICTION'] 

由于包含'PREDICTION'的字典位于列表的第1个元素(即第0个索引)中,因此您可以通过myDataset[0]访问它。这会给你这个命令。现在您可以访问字典。 “ PREDICTION”存储在名为“ origen”的键的值中,您可以通过myDataset[0]['origen']访问该键。现在,这又指向另一个字典,现在您可以通过myDataset[0]['origen']['PREDICTION']访问键“ PREDICTION”的值。到目前为止,您应该对它的工作原理有一个基本的了解。同样,解析代码给出的值并将其写入csv。关于如何在整个Internet上编写csv文件,应该有很多示例。这是一个示例片段。

import csv
with open('mycsv.csv', 'w') as writeFile:
    writer = csv.writer(writeFile)
    writer.writerows(variable_containing_some_data)

我希望它会有所帮助。

编辑:

通过预测进行解析应该会给你这样的东西

parsed_data = [{'value': 0, 'periodo': '00-24'}, 
{'value': 0, 'periodo': '00-12'}, 
{'value': 0, 'periodo': '12-24'}, 
{'value': 0, 'periodo': '00-06'}]

使用

加载到熊猫数据框
predictions = pd.DataFrame(data=parsed_data)

如果您print(predictions)会自动做出这样的行和列表示形式

  periodo  value
0   00-24      0
1   00-12      0
2   12-24      0
3   00-06      0

如果您想进一步控制列名,可以使用

predictions = pd.DataFrame(data=parsed_data, columns=. ['periodo','value'])

现在您可以使用

将数据直接保存到csv中
export_csv = predictions.to_csv (r'mycsv', index = None, header=True)

您的csv将如下所示

periodo,value
00-24,0
00-12,0
12-24,0
00-06,0
相关问题