| | 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 になったりすること.ちゃんと処理してやらないとハマる. |