這是我的 JSON 陣列:
amenities = {
"9": {
"id": "9",
"name": "Fitness facilities"
},
"2820": {
"id": "2820",
"name": "Number of indoor pools - 10",
"value": 10
}
},
現在我想通過洗掉第一級元素來實作它,因為它類似于“id”:
amenities = {
({"id": "9","name": "Fitness facilities"}),
({"id": "2820","name": "Number of indoor pools - 10","value": 10})
}
這是我擁有的資料框,'amenities' 列的型別是字串: 在此處輸入影像描述
這是我撰寫的代碼:
amenities_df['amenities_list'] = amenities_df['amenities'].map(lambda amenities_dict: amenities_dict.values() if isinstance(amenities, dict) else amenities_dict)
但我無法洗掉第一級元素。
我做錯了什么?請幫忙。非常感謝你
uj5u.com熱心網友回復:
您可能想要一個串列,而不是字典:
amenities = [*amenities.values()]
結果:
[{'id': '9', 'name': 'Fitness facilities'}, {'id': '2820', 'name': 'Number of indoor pools - 10', 'value': 10}]
uj5u.com熱心網友回復:
在我看來,這里最好的選擇不是“洗掉”第一個級別,而是重命名它。
您正在使用的是一個 python 字典,它需要鍵值對。你說你想要的字典不是正確的字典。它沒有鍵和值。
amenities = {
({"id": "9","name": "Fitness facilities"}),
({"id": "2820","name": "Number of indoor pools - 10","value": 10})
}
我在這里看到了幾個選項。一,你可以有一個字典串列:
dict_list = [
{"id": "9","name": "Fitness facilities"},
{"id": "2820","name": "Number of indoor pools - 10","value": 10}
]
這將“洗掉”頂層,但不再是字典資料結構。這是一個包含字典的串列。
其次,您可以重命名頂層,使其與id元素不同。
updated_dict = {}
for i, k in enumerate(amenities.keys()):
updated_dict[i] = amenities[k]
這導致
{0: {'id': '9', 'name': 'Fitness facilities'},
1: {'id': '2820', 'name': 'Number of indoor pools - 10', 'value': 10}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/403755.html
標籤:
上一篇:動態反應setState-如何從props設定狀態屬性和值
下一篇:將資料框轉換為json包括索引列
