请求中的参数

时间:2017-12-20 18:26:52

标签: python python-requests urllib

所以我正在尝试学习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。将会进一步澄清任何问题。

1 个答案:

答案 0 :(得分:1)

通过查看您为API提供的文档,看起来您的参数不是API所需的结构。

在示例部分下,它显示随请求发送的queries

queries = [
    {'mpn': 'SN74S74N',
     'reference': 'line1'},
    {'sku': '67K1122',
     'reference': 'line2'}
]

所以你需要的例子是:

queries = [
    {'mpn': 'SN74S74N',
     'reference': reference goes here}
]

并使用您的代码中的请求。

link to the docs