簡體   English   中英

Python:從非常大的JSON請求中提取特定數據

[英]Python: Extract specific data from a very large JSON request

我試圖從一個很大的JSON請求中提取ID和相應的名稱,我的腳本卡在了終端中。 我已經等了十多分鍾,什么都沒有,甚至沒有錯誤。 理想情況下,我只想返回我事先提供的給定名稱列表的ID。 這是我的JSON看起來像x1000s的樣子:

{
     "results":[
         {
             "id" : "156756",
             "advertiser_id" : "taboola-demo-advertiser",
             "name" : "Demo Campaign1",
             "tracking_code" : "taboola-track",
             "cpc" : 0.25,
             "daily_cap" : 100,
             "spending_limit" : 1000,
             "spending_limit_model": "MONTHLY",
             "country_targeting": {
                 "type" : "INCLUDE",
                 "value" : ["AU", "GB"]
             } 
         },
         {
             "id" : "756862",
             "advertiser_id" : "taboola-demo-advertiser",
             "name" : "Demo Campaign2",
             "tracking_code" : "taboola-track",
             "cpc" : 0.25,
             "daily_cap" : 100,
             "spending_limit" : 1000,
             "spending_limit_model": "MONTHLY",
             "country_targeting": {
                 "type" : "INCLUDE",
                 "value" : ["AU", "GB"]
             } 
         },
         // … more results
     ]
}

這是我到目前為止所做的,但是我什至沒有機會查看它是否有效,因為我沒有得到任何結果或錯誤:

resp = requests.get(url=url, headers=headers)
for id, name in resp.json():
    print (id, ':', name)

你們能幫我解決這個問題嗎? 謝謝。

編輯:我嘗試了幾次,這一次,我得到錯誤“發生異常:ValueError太多的值要解壓縮(預期2)”

for id, name in resp.json()不是獲取名為idname項的正確方法。 而且,這些項目不是json響應的直接成員; 它們是results列表中子項目的成員。

請嘗試以下代碼:

resp = requests.get(url=url, headers=headers)
data = resp.json()
for result in data['results']:
    print(result['id'], ':', result['name'])

您必須遍歷結果值(JSON數組)。 因此,請執行以下操作:

resp = requests.get(url=url, headers=headers) for element in resp.json().results: print (element.id, ':', element.name)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM