2017-12-20 8 views
0

私はAPIを使って作業できるように、私はPythonを学ぼうとしています。私が使っていたチュートリアルでは、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

ドキュメントによるとhttps://octopart.com/api/docs/v3/rest-api#endpoints-parts-match、 'クエリの値が='単純な文字列であってはなりません「SN74S74N」のように。 –

+0

Octopart APIのドキュメントを見てみると、APIが返すエラーは、クエリの値が期待通りのものではないということになります。リクエストは必要な処理を行っていますが、クエリの書式設定に取りかかる必要があります。 –

+0

ドキュメント(https://octopart.com/api/docs/v3/overview)は、「クエリ」パラメータが文字列ではなく辞書のリストであることを示しているようです。 Pythonの例のように '' sketch ':' 67K1122 '、 ' reference ':' line2 '}のように 'queries = [ {' mpn ':' SN74S74N '、 ' reference ':' line1 '}、 { { 'mpn_or_sku': 'SN74S74N' '参照': 'LINE3'}、 { 'ブランド': 'テキサス・インスツルメンツ' 'MPN': 'SN74S74N' '参照': 'LINE4'} ] ' –

答えて

1

API用に提供したドキュメントを見ても、APIの必要な仕組みがパラメータで構成されていないようです。例のセクションで

として、それは要求とともに送信queriesを示しています。だからあなたたとえば、あなたが必要

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

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

とあなたのコードを持っているとして、要求を使用します。

link to the docs

関連する問題