| 1 | = PyAmazon = |
| 2 | [[PageOutline]] |
| 3 | |
| 4 | 仕様が割ときつい. |
| 5 | |
| 6 | == 基本 == |
| 7 | 以下は amazon.co.jp から「パイソン」を検索した結果を適当に出力する例. |
| 8 | |
| 9 | {{{ |
| 10 | #!python |
| 11 | import amazon |
| 12 | |
| 13 | LOCALE = 'jp' |
| 14 | ACCESS_KEY = 'your access key' |
| 15 | |
| 16 | amazon.setLocale(LOCALE) |
| 17 | amazon.setLicense(ACCESS_KEY) |
| 18 | |
| 19 | data = amazon.searchByBlended(unicode('パイソン', 'euc-jp').encode('utf-8')) |
| 20 | |
| 21 | for p in data.ProductLine: |
| 22 | details = p.ProductInfo.Details |
| 23 | for d in details: |
| 24 | for key, val in d.__dict__.iteritems(): |
| 25 | print '%(key)s: %(val)s' % locals() |
| 26 | }}} |
| 27 | |
| 28 | * PyAmazon は内部で Amazon API の XML を呼び出して xml.dom.minidom で解析した後,unmarshal という関数で階層構造に沿ってオブジェクトを作っている.そのため,XML の構造がそのまま Python のオブジェクトに継承されている. |
| 29 | * 検索キーワードには UTF-8 文字列 ('''unicode オブジェクトではない''') を指定してやる必要がある. |
| 30 | * 問題なのは,Artists や Authors 等のフィールドが,場合によって amazon.Bag になったり str になったりすること.ちゃんと処理してやらないとハマる. |