Posted at 2011-11-25 01:37:19 under テクノロジ (by key)

Affiliate Window API のサンプルコードがPHP版しかないのでPythonで何とかしてみたメモ。まだまだ調査中。

import suds
url = 'http://v3.core.com.productserve.com/ProductServeService.wsdl'

client = suds.client.Client(url)
userauth = client.factory.create('UserAuthentication')
userauth.sApiKey = 'あーぶらかたぶらー'

client.set_options(soapheaders=userauth)
client.service.getCategoryTree()

結果。

(CategoryTree){
  oCategory[] =
     (Category){
        iId = 97
        sName = "Clothing & Accessories"
        sDescription = "Clothing & Accessories"
        iAdult = 0
     },
     (Category){
        iId = 61
        sName = "Computers & Software"
        sDescription = "Computers & Software"
        iAdult = 0
     },
     (Category){
        iId = 4
        sName = "Electronics"
        sDescription = "Electronics"
        iAdult = 0
     },
     (Category){
        iId = 634
        sName = "Entertainment"
        sDescription = "Entertainment"
        iAdult = 0
     },
     (Category){
        iId = 173
        sName = "Gifts, Gadgets & Toys"
        sDescription = "Gifts, Gadgets & Toys"
        iAdult = 0
     },
     (Category){
        iId = 99
        sName = "Health & Beauty"
        sDescription = "Health & Beauty"
        iAdult = 0
     },
     (Category){
        iId = 421
        sName = "Home & Garden"
        sDescription = "Home & Garden"
        iAdult = 0
     },
     (Category){
        iId = 361
        sName = "Home Appliances"
        sDescription = "Home Appliances"
        iAdult = 0
     },
     (Category){
        iId = 540
        sName = "Jewellery"
        sDescription = "Jewellery"
        iAdult = 0
     },
     (Category){
        iId = 246
        sName = "Sports"
        sDescription = "Sports"
        iAdult = 0
     },
     (Category){
        iId = 347
        sName = "Telephones & Faxes"
        sDescription = "Telephones & Faxes"
        iAdult = 0
     },
     (Category){
        iId = 586
        sName = "Tickets"
        sDescription = "Tickets"
        iAdult = 0
     },
     (Category){
        iId = 328
        sName = "Travel"
        sDescription = "Travel"
        iAdult = 0
     },
     (Category){
        iId = 493
        sName = "Vehicles, Parts and Accessories"
        sDescription = "Vehicles, Parts & Accessories"
        iAdult = 0
     },
}

Tags: python
Posted at 2011-11-18 20:45:24 under テクノロジ (by key)
  • Python 2.6 / Python 2.7の違い
  • timedeltaにtotal_secondsがない
  • Decimalにfloatを渡せる
  • django-south
  • 同じマイグレーションに対して複数回依存(depends_on)があると「テーブルがもうある」というエラー

ハマったハマった…。

Tags: django, python
Posted at 2011-02-25 20:49:28 under テクノロジ (by key)

職場の勉強会BPStudyでMongoDBについて喋ってきました。

プレゼン資料はしゃべる内容は書かないポリシー(池上彰流に!)なので最低限です。

ベンチマークもっと取りたかったんだけど、条件難しくて取りきれなかったー。使ったツールはbitbucketで公開してます。 ベンチのデータ採取したらCPU1コアしか使ってなかったので、なにか問題あると思います…誰か直して^^;

データが無いなら無いなりにってことで、実際に使って(痛い目を見つつ)得た知見をまとめてみました。 楽しめたかな?

Posted at 2011-02-22 16:25:24 under テクノロジ (by key)

MyBike.JPを支えるシリーズ第n回目。

DjangoでRSSフィードを作るときに条件指定したかったんだけどやり方が分からなくて、 いろいろ調べてたらDjango 1.2からnew style feedというやつを使うと簡単にできそう。で、早速使ってみた。

Continue reading
Posted at 2011-01-29 22:13:12 under テクノロジ (by key)

MongoDB GridFSをストレージにしているdjangoアプリケーションの環境で、 default_storage.delete(filename) ってやってもファイルが消せないのでメモ。 まだ途中です(だから前編なの)。 javascriptでコード片を取り込んでるので、RSSリーダで読んでる人は元のエントリ開いてみてね。

環境。

消したいファイルのObjectIdを確認する。

storages.mongodb.GridFSStorageのdelete()は、実はファイル名を受け付けてくれない(笑)。しかもエラーも返してくれない。 ソースコードを読むとfile_idと書かれていて、ObjectIdのヘックス値を指定すればいいのかと思い試したが、やはり消えない。 しかし、ObjectIdが分かっていれば消せる。

bson.objectidモジュールからObjectIdクラスを読んできて、インスタンスを作るときにヘックス値を渡してあげる。

でもって、default_storage.delete()にObjectIdのインスタンスを渡すと消える。

これだけなんですが、ずいぶん長いことハマりました…。

まだファイル名から削除することができないので調査中。


UPDATE: 解決!GridFSFileオブジェクトからObjectIdを取得することができました。なんでこれに早く気づかなかったんだ〜。

戻り値はObjectIdオブジェクトそのものなので、そのままdelete()に放りこんでOKです。

Tags: mongodb, python