Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:从非常大的JSON请求中提取特定数据_Python_Json - Fatal编程技术网

Python:从非常大的JSON请求中提取特定数据

Python:从非常大的JSON请求中提取特定数据,python,json,Python,Json,我试图从一个非常大的JSON请求中提取ID和相应的名称,结果我的脚本被困在终端中。我已经等了10多分钟了,什么都没有,甚至没有一个错误。 理想情况下,我只想返回我之前提供的给定姓名列表的ID。 以下是我的JSON看起来像x1000s: { "results":[ { "id" : "156756", "advertiser_id" : "taboola-demo-advertiser", "

我试图从一个非常大的JSON请求中提取ID和相应的名称,结果我的脚本被困在终端中。我已经等了10多分钟了,什么都没有,甚至没有一个错误。 理想情况下,我只想返回我之前提供的给定姓名列表的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

您必须对结果的值进行迭代,该值是一个JSON数组。因此,应采取以下措施:

resp=requests.geturl=url,headers=headers 对于resp.json.results中的元素: 打印element.id“:”,element.name

必须遍历结果的值,该值是一个JSON数组。因此,应采取以下措施:

resp=requests.geturl=url,headers=headers 对于resp.json.results中的元素: 打印element.id“:”,element.name

对于id,resp.json中的name不是获取名为id和name的项目的正确方法。而且,这些项不是json响应的直接成员;它们是结果列表中子项的成员

请尝试以下代码:

resp = requests.get(url=url, headers=headers)
data = resp.json()
for result in data['results']:
    print(result['id'], ':', result['name'])
对于id,resp.json中的name不是获取名为id和name的项的正确方法。而且,这些项不是json响应的直接成员;它们是结果列表中子项的成员

请尝试以下代码:

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

非常感谢。错误:“dict”对象没有属性“results”,我不相信。结果会起作用;您必须使用['results']。同样,element.id也不起作用;使用元素['id'],谢谢。错误:“dict”对象没有属性“results”,我不相信。结果会起作用;您必须使用['results']。同样,element.id也不起作用;使用元素['id']。