美国专利局API的curl POST转Python requests.post报错,求修正方法
修正USPTO API的requests.post请求
你的核心问题是curl转换器错误地将查询条件中的双引号转成了HTML实体",导致API无法正确解析查询规则。以下是修正后的实现方案:
修正后的代码
import requests headers = { 'Accept': 'application/json', } data = { 'criteria': 'patentApplicationNumber: "15931761"', 'start': 0, 'rows': 100, } response = requests.post( 'https://developer.uspto.gov/ds-api/enriched_cited_reference_metadata/v2/records', headers=headers, data=data, ) # 调试用:查看响应状态和内容 print(response.status_code) print(response.text)
关键修正细节
- 移除手动设置的Content-Type头:当使用
requests.post的data参数传递表单数据时,库会自动添加正确的application/x-www-form-urlencoded请求头,手动设置可能引发格式冲突。 - 修复查询条件的引号:将
"替换为普通双引号",确保API能识别patentApplicationNumber的匹配值。 - 规范参数类型:将
start和rows的字符串值改为整数,更符合API的参数预期类型(字符串类型也可兼容,但整数更严谨)。
调试建议
若仍报错,优先打印response.status_code和response.text,API通常会在响应内容里返回具体的错误原因(比如参数格式错误、权限问题等),帮助快速定位问题。
内容的提问来源于stack exchange,提问作者EJensen
相关产品推荐
相关产品推荐

