0

Python 経由で SmartyStreets API を使用したい。

私が使用しているスクリプトは次のとおりです。

# ss.py

import requests
import pdb

authid   = 'jaf110af-b6ae-3ea2-829a-035dcb246392'
token    = 'kAyGAA0rD0lNykcktJpg'
payload2 = {'auth-id':authid, 'auth-token':token}
add_s    = '1600+Amphitheatre+Parkway,+Mountain+View,+CA'
site2    = 'https://api.smartystreets.com/'+add_s

req2 = requests.get(site2,params=payload2)

pdb.set_trace()

req2.status_code
#req2.json()
req2.text
'bye'

API サーバーが 404 を発行しているので、構文エラーが発生している可能性があります。

API サーバーへの API 呼び出しをデバッグする方法を教えてください。

ここに私のセットアップに関するいくつかの情報があります:

dan@h81:~/ks/c/lodgiq $ python
Python 3.5.1 |Anaconda 4.0.0 (64-bit)| (default, Dec  7 2015, 11:16:01) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> 
dan@h81:~/ks/c/lodgiq $ 
dan@h81:~/ks/c/lodgiq $ 
dan@h81:~/ks/c/lodgiq $ python ss.py 
> /home/dan/ks/c/lodgiq/ss.py(16)<module>()
-> req2.status_code
(Pdb) req2.status_code
404
(Pdb) 
4

1 に答える 1

1

ここでは、次の 2 つのことが起こっています。

  1. URL が正しくありません。あなたのコードは、あなたが URL をリクエストしていることを示していますhttps://api.smartystreets.com/1600+Amphitheatre+Parkway,+Mountain+View,+CA。URL をリクエストする必要がありhttps://api.smartystreets.com/?street=1600%20Amphitheatre%20Pkwy&city=Mountain%20View&state=CA&zipcode=200 OKレスポンスが返されました。アドレスは、URL パス自体ではなく、クエリ パラメーターとして送信されることに注意してください。また、アドレス内の特殊文字 (+および,) は URL エンコードされていることにも注意してください。
  2. 渡す (つまりのparams値) は、、payload2などのクエリ パラメータを意味しますが、クエリ パラメータではなく、HTTP ヘッダーの値を送信しています。Requests ドキュメントに従って、ヘッダーを送信します。citystatezipcodepayload2headers

それが役立つことを願っています。

于 2016-03-31T00:46:27.443 に答える