wiki:PyAmazon

Version 1 (modified by atzm, 18 years ago) (diff)

--

PyAmazon

仕様が割ときつい.

基本

以下は amazon.co.jp から「パイソン」を検索した結果を適当に出力する例.

import amazon

LOCALE = 'jp'
ACCESS_KEY = 'your access key'

amazon.setLocale(LOCALE)
amazon.setLicense(ACCESS_KEY)

data = amazon.searchByBlended(unicode('パイソン', 'euc-jp').encode('utf-8'))

for p in data.ProductLine:
    details = p.ProductInfo.Details
    for d in details:
        for key, val in d.__dict__.iteritems():
            print '%(key)s: %(val)s' % locals()
  • PyAmazon は内部で Amazon API の XML を呼び出して xml.dom.minidom で解析した後,unmarshal という関数で階層構造に沿ってオブジェクトを作っている.そのため,XML の構造がそのまま Python のオブジェクトに継承されている.
  • 検索キーワードには UTF-8 文字列 (unicode オブジェクトではない) を指定してやる必要がある.
  • 問題なのは,Artists や Authors 等のフィールドが,場合によって amazon.Bag になったり str になったりすること.ちゃんと処理してやらないとハマる.