所以我正在尝试学习python,所以我可以使用api。我使用的教程是使用python 2和urllib。我正在运行python 3.6,所以它没有工作。所以我决定尝试了解请求。我在从urllib转换为请求时遇到了一些麻烦。
import requests
import json
parameters = {"apikey": "mykey", "queries": "SN74S74N"}
response = requests.get("http://octopart.com/api/v3/parts/match", params =
parameters)
data = response.json()
#print(type(data))
print(data)
我运行时遇到的错误是
{'message': 'JSON decode error: SN74S74N', '__class__': 'ClientErrorResponse'}
我不确定为什么我会收到此错误。但我认为这可能是因为我的参数设置不正确。请求是否能够在文档中执行相同的操作? https://octopart.com/api/docs/v3/rest-api#endpoints-parts-match
抱歉,这很模糊,我刚开始学习python和apis。将会进一步澄清任何问题。
答案 0 :(得分:1)
通过查看您为API提供的文档,看起来您的参数不是API所需的结构。
在示例部分下,它显示随请求发送的queries
:
queries = [
{'mpn': 'SN74S74N',
'reference': 'line1'},
{'sku': '67K1122',
'reference': 'line2'}
]
所以你需要的例子是:
queries = [
{'mpn': 'SN74S74N',
'reference': reference goes here}
]
并使用您的代码中的请求。