我有兩個來自 API 的串列,我想讓其中一個成為一個字典的鍵,另一個成為一個字典的值。鍵和值是不均勻的,大多數鍵有多個值被分配給它們;但每次我試圖將值分配給 API 給我的特定鍵時,我都不知道如何將鍵和值對齊并將它添加到字典中。
x = response_dict[' businesses']
nameL = []
c2L = []
#a2 = collections.defaultdict(list))
a = {}
a2 = {}
for biz in response_dict[' businesses']。
print(biz['name'])
nameL.append(biz['name'])
for naming in biz['categories'] 。
print(naming['title'])
c2L.append(naming['title'])
在for回圈中列印print(biz['name'])和print(naming['title'])的輸出:
Avalon Grille
美國 (新)
-----
Maggie's Blue Rose
墨西哥菜
-----
意大利菜
意大利菜
匹薩
-----
水壺餐廳
餐廳
美式(傳統)
-----
拉斐爾餐廳
意大利菜
-----
Steve's s 牛排館
牛排餐廳
海鮮
酒吧
-----
飯館
墨西哥菜
-----
北端咖啡館
美式(新)
咖啡館
-----
鮑爾泰國
泰式
沙拉
咖啡和茶
-----
花園泰國餐廳
泰語
-----
薩卡特卡斯餐廳
墨西哥
海鮮
早餐和早午餐
-----
巴布阿甘蝦
海鮮
南方
-----
意大利面
意大利
匹薩
酒館
-----
貝拉納波利
匹薩
意大利菜
甜品
-----
雜燴駁船
海鮮
酒吧
美式(傳統)
-----
哦,我的漢堡包
漢堡
沙拉
玉米餅
-----
嘉天壽司
日本的
壽司店
-----
阿瑟-J餐廳
牛排餐廳
雞尾酒會酒吧
-----
麥當勞's
快餐
漢堡
咖啡和茶
-----
胖子米飯
中國菜
亞洲風味
-----
我想讓結果以上述的字典形式出現:
我想讓結果以上述的字典形式出現。
{'Avalon Grille'/span>: ['American (New)'], 'Maggie's Blue Rose':['Mexican], 'Eatalian': ['意大利', 'Pizza'], ... '麥當勞's':['快餐', '漢堡', '咖啡& 茶']}
uj5u.com熱心網友回復:
假設輸入與你問題頂部的代碼示例中使用的相同,似乎你正在尋找類似這樣的東西:
output = {}。
for biz in response_dict[" businesses"]。
標題 = []
for category in biz["categories"]。
titles.append(category["title"] )
output[biz["name"]] = titles
我很想用這樣的理解力來濃縮它:
output = {biz["name"] : [category["title"] for category in biz["category">] ] for biz in response_dict["business"]] }
uj5u.com熱心網友回復:
你可以使用defaultdict:
from collections import defaultdict
name_titles = defaultdict(list)
for biz in response_dict[' businesses']。
for naming in biz['categories']。
name_titles[biz['name']].append(naming['title'])
或者串列理解:
name_titles = {biz['name']: [naming['title'] for naming in biz['categories'] ] for biz in response_dict['business']] }
uj5u.com熱心網友回復:
你可以用字典理解和嵌套的串列理解來做。
result = {biz['name']。[naming['title'] for naming in biz['categories'] ]
for biz in response_dict['business']] }
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/332629.html
標籤:
上一篇:比較檔案夾與哈希檔案
