2017-12-20 4 views
0

그래서 파이썬을 배우려고 노력 중이므로 API로 작업 할 수 있습니다. 내가 사용하고있는 자습서는 python 2와 urllib을 사용했습니다. 파이썬 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

미안하지만 이것은 막연합니다. 저는 방금 파이썬과 api를 배우기 시작했습니다. 어떤 질문을 더 명확히하기 위해 주위에있을 것입니다.

+0

설명서 https://octopart.com/api/docs/v3/rest-api#endpoints-parts-match에 따르면,'쿼리의 값은 ='간단한 문자열 안 'SN74S74N'과 같다. –

+0

Octopart API 문서를 간략히 살펴보면 API가 반환하는 오류가 'queries'값이 예상 한 형식이 아님을 표시하는 것처럼 보입니다. 요청은 필요한 작업을 수행하고 있지만 쿼리 서식을 설정해야합니다. –

+0

설명서 (https://octopart.com/api/docs/v3/overview)는 "queries"매개 변수가 문자열이 아닌 사전 목록이어야 함을 나타냅니다. Python 예제와 마찬가지로 :'queries = [{ 'mpn': 'SN74S74N', 'reference': 'line1'}, { 'sku': '67K1122', 'reference': 'line2'}, { 'mpn_or_sku': 'SN74S74N', '참조': '입력란 3'}, { '브랜드': '텍사스 인스트루먼트', 'MPN': 'SN74S74N', '참조': '라인 4'} ] ' –

답변

1

API에 대해 제공 한 문서를 살펴보면 매개 변수가 API에서 필요로하는 방식으로 구성되지 않은 것으로 보입니다. 예제 섹션에서

, 그것은 같은 요청과 함께 전송 된 queries 보여줍니다

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

및 코드에서이 같은 요청을 사용

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

을 그래서 예를 들어, 당신은 필요 .

link to the docs