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