web-dev-qa-db-ja.com

Google App EngineでJSONを解析するにはどうすればよいですか?

JSON文字列を解析して、Google App Engine(python)のオブジェクトにしたいと思います。おすすめは何ですか?エンコード/文字列化するものも素敵です。組み込みが推奨されているものですか、それともアプリに含める必要があるライブラリですか?安全ですか?ありがとう。

81
Nogwater

Djangoのjson lib の使用を検討してください。これはGAEに含まれています。

from Django.utils import simplejson as json

# load the object from a string
obj = json.loads( string )

上記のリンクにはDjangoのシリアライザーの例があり、ここに simplejsonのドキュメント のリンクがあります。

Pythonクラスインスタンスまたはオブジェクト(リスト、文字列、数字、辞書の構成とは対照的に))の保存を検討している場合は、おそらく pickle =。

それがお役に立てば幸いです。

ちなみに、GAEでDjango 1.0(Django 0.96)の代わりに)を取得するには、main.pyで次の呼び出しを使用できます この記事

from google.appengine.dist import use_library
use_library('Django', '1.0')

編集:Python 2.7を使用したGoogle App Engine 1.6.0のネイティブJSONサポート

Google App Engine 1.6.0以降、 Python 2.7ランタイム を使用して、runtime: python27app.yamlに追加してから、次のことができます。 import jsonを使用してネイティブJSONライブラリをインポートします。

114
Brian M. Hunt

Google App Engineはpython 2.7をサポートするようになりました。python 2.7を使用している場合は、次のことができます。

import json
structured_dictionary = json.loads(string_received)
22
speedplane

これは古い質問ですが、私は更新された、より詳細な答えを出すと思いました。ここに着陸する場合、ほぼ確実にpython 2.6以上を使用しているため、組み込みのjsonモジュールを使用できます for Python 2 (または for Python 、Googleが最近Python 3のGAEのサポート)を追加したため。インポートはimport json。 jsonモジュールの使用方法の例を次に示します。

import json

# parse json_string into a dict
json_string = '{"key_one": "value_one", "key_two": 1234}'
json_dict = json.loads(json_string)
# json_dict: {u'key_two': 1234, u'key_one': u'value_one'}

# generate json from a dict
json_dict = {'key': 'value', 'key_two': 1234, 'key_three': True}
json_string = json.dumps(json_dict)
# json_string: '{"key_two": 1234, "key": "value", "key_three": true}'

古いバージョンのpythonを使用している場合は、@ Brian M. Huntの答えに固執してください。

繰り返しますが、これは Python 2 のjsonモジュールのドキュメントページで、ここでは Python のページです。

2
Brendan Goggin

Python2.6以降を使用している場合、組み込みの json 。load関数を使用しました。それ以外の場合、 simplejson は依存関係なしで2.4で機能します。

1
c_harm

json.org のpythonセクションをご覧ください。JSONの標準ライブラリサポートは、python 2.6アプリエンジンが提供するものよりも新しいものです。

0
Yuval F