私は、動的コンテンツを生成するために MySQL DB からのデータにアクセスする cgi スクリプト (python) からの応答を受け取る Android 用のアプリケーションを作成しています。ちゃんと返事が来ます。JSON配列でAndroidクライアントに応答できるように、Python辞書サーバー側を使用しようとしています。デバッグ中に、次のように辞書を使用しない場合:
with con:
cur = con.cursor()
cur.execute("SELECT * from posts")
rows = cur.fetchall()
print "Content-type: text/html"
print
if cur:
print row[1] #this entry in the DB is a datetime field, however other fields suffer from the same problem
else:
print "Something went wrong."
その場合、2013-06-06 23:03:47 などの望ましい形式で Android クライアントで応答を取得します。
一方、辞書を作成し、次のように列名などのキーの下に値を配置すると:
with con:
cur = con.cursor()
cur.execute("SELECT * from posts")
rows = cur.fetchall()
print "Content-type: text/html"
print
if cur:
for row in rows:
d = {'time':row[1]}
print d
else:
print "Something went wrong."
次に、受け取った応答にフォーマットの問題があります。次のような応答を受け取ります。
{'time':datetime.datetime(2013,6,6.23.3.47)}
Decimal を使用した数値でも同じことが起こります。通常の印刷のように数字だけで表示する代わりに、辞書 (応答) 内では次のように表示されます。
Decimal('12.345678')
私よりも知識のある人は、この主題に光を当てることができますか?
前もって感謝します!