我正在尝试使用python的请求库从this个人资料中接收社交媒体,但我似乎不能在这里工作,这是我的尝试之一:
import requests
def get_user():
url = "https://hasura2.foundation.app/v1/graphql"
headers = {
"user-agent": "Mozilla/5.0"
}
query = """
query hasuraUserProfileByPublicKey($publicKey: String!) {
user: user_by_pk(publicKey: $publicKey) {
...HasuraUserFragment
}
}
fragment HasuraUserFragment on user {
instaSocialVerifs {
0 {
username
}
}
twitSocialVerifs {
0 {
username
}
}
links
}
"""
payload = {
"operationName": "hasuraUserProfileByPublicKey",
"query": query,
"variables": {
"publicKey": "0xF9D6fcE6Cce28c0Cd62c5CAf045f4F6233888989"
}
}
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
return response.json()["data"]["user"]我得到了一个错误:
return response.json()["data"]["user"]
KeyError: 'data'我是一个相当新手的网络抓取,并感谢任何帮助!
发布于 2021-10-31 12:03:21
我将解释这个错误,以及在以后使用response.json()["data"]["user]时应该如何处理字典。如果response.json没有数据键,您将收到此错误。我的建议是,首先看一下response.json(),打印这个键,看看它返回了什么类型的数据,然后我建议你使用一个像这样的符号,response.json().get("data", {}).get("user","")不会给出错误,即使你在响应中没有得到这些键。
https://stackoverflow.com/questions/69786313
复制相似问题