需要Python中的JSON数据抓取帮助吗
我使用下面的代码从网站上抓取数据。但我面临着需要Python中的JSON数据抓取帮助吗,python,json,web-scraping,automation,Python,Json,Web Scraping,Automation,我使用下面的代码从网站上抓取数据。但我面临着关键错误:0 请告诉我代码中的问题 来自网页的原始JSON响应: 答复: {"user_details":{"user_id":"22","username":"Test","user_email":"test@gmail.com"}} 我想清除用户名,用户id和用户电子邮件 我所尝试的: import json import requests import datetime #data outputs to a CSV file in the
关键错误:0
请告诉我代码中的问题
来自网页的原始JSON响应:
答复:
{"user_details":{"user_id":"22","username":"Test","user_email":"test@gmail.com"}}
我想清除用户名
,用户id
和用户电子邮件
我所尝试的:
import json
import requests
import datetime
#data outputs to a CSV file in the current directory
csv_output = open("test.csv", "w")
end_page = 5;
#scan through pages 1 to end_page for data, 20 results per page
for page in range(1,end_page+1):
r = requests.get('https://www.demo.com/api/user_details/' + str(page))
data = r.json()
for index in range(len(data["user_details"])):
csv_output.write("\"%s\",%s\n" % (data["user_details"][index]["user_id"].encode('ascii', 'ignore'))),
data["user_details"][index]["user_id"]
csv_output.close()
data[“user\u details”]
是一个dict而不是列表,您会收到错误,因为您试图使用索引访问值:
data["user_details"][index] ....
您可以通过访问dict中的特定键来获取条目:
user_id = data["user_details"]['user_id']
username = data["user_details"]['username']
user_email = data["user_details"]['user_email']
这里的用户详细信息是一本字典。另一方面,index
是来自范围
调用的整数。第一个值是0
。您的代码尝试加载数据[“用户详细信息”][0]
。但是那本字典里没有键0
要遍历字典,可以调用items
方法,该方法将为您提供一个具有(键,值)
对的元组
d = {"user_id":"22","username":"Test","user_email":"test@gmail.com"}
for k,v in d.items():
print("Key: {}, Value: {}".format(k,v))
这正是AKS所做的,但我真的建议您使用它来创建爬虫。容易得多。:) 我的代码没有在请求中循环。它只是在“d”变量中显示数据。现在我比以往更多地使用它。要走的路。:)
d = {"user_id":"22","username":"Test","user_email":"test@gmail.com"}
for k,v in d.items():
print("Key: {}, Value: {}".format(k,v))