我有以下形式的字典:
data = {
"name": [
"Robin_lodging_Dorthy",
"Robin_lodging_Phillip"
],
"color": [
"#FF0000",
"#FF0000"
],
"data": [
[
33.55833333333333,
32.887499999999996,
33.15416666666666
],
[
51.987500000000004,
52.07916666666667,
51.45416666666667
]
]
}
我想將字典轉換為以下形式:
{'lines': [
{'name': 'Robin_lodging_Dorthy'},
{'color': '#FF0000'},
{'data': [33.55833333333333,
32.887499999999996,
33.15416666666666]},
{'name': 'Robin_lodging_Phillip'},
{'color': '#FF0000'},
{'data': [51.987500000000004,
52.07916666666667,
51.4541666666666]}]}
我所做的是以下,但這是一種錯誤的方法:
formatted_data = []
for key in data.keys():
for value in data[key]:
temp = {}
temp[key] = value
formatted_data.append(temp)
{'lines': formatted_data}
知道如何處理它嗎?
uj5u.com熱心網友回復:
一些串列和字典理解就可以了:
data_tf = [{k:v[i] for k, v in data.items()} for i in range(len(list(data.values())[0]))]
您需要找出拆分資料需要多少個字典,然后您只需在串列中構造新的字典,從每個 k:v 對的每個值中獲取第 i 個元素。
編輯:同樣的事情使用明確的回圈,更接近你原來的嘗試:
data_tf = []
for i in range(len(list(data.values())[0])):
d = {}
for k, v in data.items():
d[k] = v[i]
data_tf.append(d)
這會產生 aa 串列,但您可以輕松地將其包裝到 dict 中。
uj5u.com熱心網友回復:
您可以使用內置函式zip來組合字典值。然后可以通過使用新獲得的“行” zip'ping 鍵來創建單個字典:data
result = [dict(zip(data.keys(), v)) for v in zip(*data.values())]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/453482.html
上一篇:使用Django,將Python字典發送到HTML頁面并將其轉換為Javascript腳本中的Javascript陣列
