我正在尝试让一个API get获取一些.json格式的数据。
当我运行请求时,我在API地址中得到一个语法错误。下面是我试图运行的代码。
我可以对父站点发出一个基本的请求,然后收到一个,并且我过去在这里发送过get请求,没有任何问题。
提前感谢您的帮助。
pv_data = requests.get("https://api.patentsview.org/uspc_mainclasses/query?q={"_and":[{"_contains":{"uspc_mainclass_id":["800","424","514","506","435","436","536"]}},{"_gt"{"patent_date":"2009-12-31"}},{"_lt":{"patent_date":"2021-04-01"}}]}&f=["assignee_city","assignee_country","assignee_latitude","assignee_longitude","assignee_num_patents_for_uspc_mainclass","assignee_organization","assignee_total_num_patents","forprior_country","forprior_date"]")...and响应
File "<ipython-input-31-0b6aea36e1fe>", line 1
pv_data = requests.get("https://api.patentsview.org/uspc_mainclasses/query?q={"_and":[{"_contains":{"uspc_mainclass_id":["800","424","514","506","435","436","536"]}},{"_gt"{"patent_date":"2009-12-31"}},{"_lt":{"patent_date":"2021-04-01"}}]}&f=["assignee_city","assignee_country","assignee_latitude","assignee_longitude","assignee_num_patents_for_uspc_mainclass","assignee_organization","assignee_total_num_patents","forprior_country","forprior_date"]")
^SyntaxError:无效语法
发布于 2021-07-29 09:34:25
由于在url字符串中也使用了双引号,因此解释器将"字符的前两个实例之间的任何内容视为有效字符串,而不知道如何处理其余的内容。
您可以通过将开始引号设置为下面这样的'来避免此错误
pv_data = requests.get('https://api.patentsview.org/uspc_mainclasses/query?q={"_and":[{"_contains":{"uspc_mainclass_id":["800","424","514","506","435","436","536"]}},{"_gt"{"patent_date":"2009-12-31"}},{"_lt":{"patent_date":"2021-04-01"}}]}&f=["assignee_city","assignee_country","assignee_latitude","assignee_longitude","assignee_num_patents_for_uspc_mainclass","assignee_organization","assignee_total_num_patents","forprior_country","forprior_date"]')发布于 2021-07-29 09:28:43
这里的问题是python弄错了应该使用哪个双引号(")来结束字符串。一种解决方案是使用\避开所有内部"。
但我建议您使用request应用编程接口本身来处理查询参数。在文档中,您可以传递params关键字参数以将数据发送到URL。
>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.get('https://httpbin.org/get', params=payload)通过打印以下URL,您可以看到URL已正确编码:
>>> print(r.url)
https://httpbin.org/get?key2=value2&key1=value1发布于 2021-07-29 09:35:07
你必须使用不同类型的引号,单引号=‘,双引号=“,或三重=’‘,让你在不同的行上写相同的句子。
'''
this is a code
'written'
on
"different"
line
'''https://stackoverflow.com/questions/68568993
复制相似问题