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


81

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


Pythonがスタックにある場合、どのバージョンですか?

私はアプリエンジンバージョン1を使用しています。これはPython2.5である必要があります。
ノグウォーター2009

回答:


114

GAEに含まれているDjangoのjsonlibの使用を検討してください。

from django.utils import simplejson as json

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

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

(リスト、文字列、数値、辞書の構成ではなく)Pythonクラスのインスタンスまたはオブジェクトの格納を検討している場合は、pickleを検討することをお勧めします。

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

ちなみに、GAEで(Django0.96ではなく)Django 1.0を実行するには、この記事に従って、main.pyで次の呼び出しを使用できます。

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

編集:Python2.7を使用したGoogleApp Engine1.6.0でのネイティブJSONサポート

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


素晴らしい答え、それは私を大いに助けました。ここにコメントするだけです。jsonのインポート機能を使用すると、アプリのデプロイ時に500サーバーエラーが発生します。しかし、from django.utils import simplejsonをjsonとして使用すると、完全に機能します。
Jose Garrido 2012

22

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

import json
structured_dictionary = json.loads(string_received)


2

これは古い質問ですが、更新された、より詳細な回答を提供したいと思いました。あなたは組み込みのJSONモジュールを使用することができますので、今ここに、それらの着陸のために、あなたはほぼ確実に、パイソン2.6以上を使用しているPythonの2のための(あるいはPythonの3のためにGAE上のPython 3のために、Googleのため、最近追加されたサポート)。インポートはと同じくらい簡単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の回答に固執してください。

ここでも、ここのためのJSONモジュールのドキュメントページではPython 2、ここでそれはのためにあるのPython 3


1

あなたはのpython2.6以上を使用している場合、私は組み込みの成功を収めて使用してきたJSON .LOAD機能。それ以外の場合、simplejsonは依存関係なしで2.4で動作します。


0

json.orgのpythonセクションを見てください。JSONの標準ライブラリサポートはPython2.6から始まりました。これは、アプリエンジンが提供するものよりも新しいと思います。たぶん、リストされている他のオプションの1つですか?


4
これは、AppEngineにはあまり関係ありません。
ティムマクナマラ2010年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.