如何在Google App Engine中解析JSON?

时间:2009-07-23 13:09:21

标签: python json google-app-engine

我想将JSON字符串解析为Google App Engine(python)下的对象。您有什么推荐的吗?编码/字符串化的东西也会很好。您推荐内置的内容,还是我必须在我的应用中包含的库?它安全吗?感谢。

6 个答案:

答案 0 :(得分:114)

考虑使用GAE附带的Django's json lib

from django.utils import simplejson as json

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

上面的链接提供了Django序列化程序的示例,这里是simplejson's documentation的链接。

如果您正在考虑存储Python类实例或对象(而不是列表,字符串,数字和字典的组合),您可能希望查看pickle

我希望有所帮助。

顺便说一句,要在GAE上运行Django 1.0(而不是Django 0.96),您可以在main.py中使用以下调用,每this article

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开始,您可以runtime: python27app.yaml中添加import json,然后可以使用{{1}}导入本机JSON库。< / p>

答案 1 :(得分:22)

Google App Engine现在支持python 2.7。如果使用python 2.7,您可以执行以下操作:

import json
structured_dictionary = json.loads(string_received)

答案 2 :(得分:6)

在您的应用中加入simplejson库?

答案 3 :(得分:2)

这是一个老问题,但我想我会给出一个更新,更详细的答案。对于那些现在登陆的人来说,你几乎肯定会使用python 2.6或更高版本,所以你可以使用内置的json模块for Python 2(或for Python 3,因为Google最近在GAE上添加了对Python 3的支持) 。导入就像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模块的doc页面,这里是Python 3

答案 4 :(得分:1)

如果您使用的是Python2.6或更高版本,我已经成功使用了内置的json。load函数。否则,simplejson适用于2.4而没有依赖关系。

答案 5 :(得分:0)

查看json.org的python部分。 JSON的标准库支持从python 2.6开始,我认为它比app引擎提供的更新。也许列出了其他选项之一?