[爆卦]python dict多層是什麼?優點缺點精華區懶人包

為什麼這篇python dict多層鄉民發文收入到精華區:因為在python dict多層這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者love11098787 (sunny_girl)看板Python標題[問題] json多層解析...


python + 爬蟲新手在爬google trends資料時遇到問題
找了好多資料都無法解決困擾
請版上神人幫忙解救QQ

以下為部分的json格式
https://i.imgur.com/gG7mDYP.jpg
https://i.imgur.com/PezSFi0.jpg
https://i.imgur.com/tpZE6uS.jpg


以下是目前的code
webdatas = data['default']['trendingSearchesDays'][0]['trendingSearches']
for news in webdatas :
print (news['title']['query'])
print (news['formattedTraffic'])
count len()
if count !=0 :
for i in count :
print (news['relatedQueries'][i]['query'])
 print (news['articles'][i]['title'])

遇到的問題是:
最後那兩行想抓
1.每個relatedQueries下的每個query
2.每個articles下的每個title

例如
title1是動滋券
relatedQueries有6個query(動滋網、動滋、體育署…)
articles有9個title
title2是威力彩
relatedQueries有0個query
articles有1個title

每個數量都不同,可能需要用count和for迴圈去跑
但功力還不夠不太知道count len()那邊可以怎麼寫
還是有其他寫法嗎

再麻煩大家了QQ

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.52.53 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1595302393.A.929.html
ddavid: 根本不需要計算個數啊 07/21 11:41
ddavid: 那是個list就讓for幫你去跑每一個就好了 07/21 11:41
ddavid: for rquery in news['relatedQueries']: 之類的 07/21 11:41
ddavid: article那邊也一樣 07/21 11:42
ddavid: for article in news['articles']: 就好 07/21 11:42
ddavid: 也不用去判定個數,反正是空list自然就一次也不會跑,除非 07/21 11:43
ddavid: 空的時候它會刻意設定為None或其他處理方式才需要特別判斷 07/21 11:43
ddavid: 還是說你的問題是卡在沒用json.loads()解析json字串? 07/21 11:47
love11098787: 前面有用json.loads處理過了,因為這邊還有https:/ 07/21 12:30
love11098787: /i.imgur.com/nOtWPJA.jpg所以比較難處裡,剛剛試 07/21 12:30
love11098787: 這個跑不出東西for i in news['relatedQueries']: 07/21 12:30
love11098787: print (news['relatedQueries'][i]['query']) 07/21 12:30
ddavid: 你搞錯for的意義了吧 07/21 12:34
ddavid: for rquery in news['relatedQueries']: 07/21 12:34
ddavid: print(rquery['query']) 07/21 12:35
ddavid: 這邊for的不是index,直接是裡面物件本身 07/21 12:36
love11098787: 這樣的話只跑的出第一個query,第二個第三個都跑不 07/21 13:23
love11098787: 出來QQ,跟我之前print (news['relatedQueries'][0 07/21 13:23
love11098787: ]['query'])結果是一樣的 07/21 13:23
hongyan: 你的news['relatedQueries']是一個list,裡面的物件是dic 07/21 15:31
hongyan: t所以還要一層for迴圈把dict東西疊代出來 07/21 15:34
hongyan: 抱歉以為你要多個key的內容 如要query的話就照dd大就行 07/21 15:43
hongyan: 你可以先試著print看看rquery,會出現所有list中的dict才 07/21 15:44
hongyan: 對 07/21 15:44
ddavid: 你先確定你print(news['relatedQueries'])真的有複數筆, 07/21 18:14
ddavid: print(news['relatedQueries'][1])真的有東西 07/21 18:14
ddavid: 如果根本就沒有多筆資料在裡面,那可能前面哪邊早就有問題 07/21 18:16

你可能也想看看

搜尋相關網站