如何在Google App Engine中解析JSON?


81

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


如果Python在您的堆栈上是什么版本?

我正在使用App Engine版本1,应该是python 2.5。
Nogwater

Answers:


114

考虑使用GAE随附的Django的json lib

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支持

作为谷歌的App Engine 1.6.0,您可以使用Python 2.7运行时加入runtime: python27app.yaml,然后你可以导入本地JSON库import json


很好的答案,对我有很大帮助。此处仅提供注释:使用import json功能时,在部署我的应用程序时出现500服务器错误。但是,当我使用django.utils中的import simplejson作为json时,它可以完美地工作。
Jose Garrido'3

22

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

import json
structured_dictionary = json.loads(string_received)


2

这是一个老问题,但我想我会提供更新的,更详细的答案。对于现在登陆这里的用户,您几乎可以肯定使用的是python 2.6或更高版本,因此可以将内置的json模块用于Python 2(或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的


1

如果您使用的是Python2.6或更高版本,那么我已经成功使用了内置的json .load函数。否则,simplejson可在没有依赖项的2.4上工作。


0

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


4
这与App Engine无关。
Tim McNamara 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.