2009年6月28日日曜日

GAEでphpのprint_rみたいな出力

phpではprint_rで配列や連想配列の中身を確認することが多いのですが、
pythonではそれに相当するものがなくデバッグに苦労しがちです。
そんなときには、配列や連想配列をjson形式で出力することで、同等に近い表示を行うことができます。


from google.appengine.ext import webapp
from django.utils import simplejson

def print_r(obj):
return simplejson.dumps( obj,indent=4,ensure_ascii=False)

class MainHandler(webapp.RequestHandler):

def get(self):
obj = {
"name" : "sample name",
"desc" : "sample desc",
"option" : {
"val1" : "value1",
"val2" : "value2",
"val3" : 333,
},
"arrary" : [
1,2,3,4,5
],
}

self.response.out.write( '<pre>' + print_r(obj) + '</pre>' )



jsonへ変換するときに、indentを設定してあげて見やすくするのと、
unicode文字列をasciiへエスケープする設定をoffにしています。
出力結果はこんな感じです。


{
"arrary": [
1,
2,
3,
4,
5
],
"name": "sample name",
"option": {
"val3": 333,
"val2": "value2",
"val1": "value1"
},
"desc": "sample desc"
}

0 件のコメント:

コメントを投稿