我想将JSON字符串解析为Google App Engine(python)下的对象。您有什么推荐的吗?编码/字符串化的东西也很好。您是建议内置的东西,还是必须包含在应用程序中的库?安全吗?谢谢。
Answers:
考虑使用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')
作为谷歌的App Engine 1.6.0,您可以使用Python 2.7运行时加入runtime: python27
的app.yaml
,然后你可以导入本地JSON库import json
。
在您的应用程序中包含simplejson库?
这是一个老问题,但我想我会提供更新的,更详细的答案。对于现在登陆这里的用户,您几乎可以肯定使用的是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的回答。
如果您使用的是Python2.6或更高版本,那么我已经成功使用了内置的json .load函数。否则,simplejson可在没有依赖项的2.4上工作。
查看json.org的python部分。JSON的标准库支持始于python 2.6,我认为它比应用程序引擎提供的更新。也许列出的其他选项之一?