Python2.5と2.6以降の違い

家にあるMacLeopardで2.5系、メインマシンがUbuntu派生のMintで2.6.系、サーバーはDebianのLennyが2.5系、Squeeze(今はこっちがStable)が2.6系、Windowsではだいたい2.6系を使ってる。

聞く話によるとGAEは2.5系らしいです。と、まぁ色々な環境でコードを書いてると良く遭遇する互換性問題があります。それはJSONパッケージ。

2.5まではjsonっていう標準パッケージが存在しないので、import jsonしてると2.6で動くのに2.5で動かないという事になる。

解決方法は簡単。先にjsonをインポートしてImportErrorが発生したらsimplejsonを代替にするだけ。

try:
  import json
except ImportError,e:
  import simplejson as json

d=json.loads("{'foo':1}")
print json.dump(d)

自分的にはloads()とdump()くらいしか使わないので、これで全然OKという話でした。