如何在 Google App Engine 中解析 JSON?
Posted
技术标签:
【中文标题】如何在 Google App Engine 中解析 JSON?【英文标题】:How can I parse JSON in Google App Engine? 【发布时间】:2010-11-13 09:11:26 【问题描述】:我想将 JSON 字符串解析为 Google App Engine (python) 下的对象。你有什么建议吗?编码/字符串化的东西也会很好。你推荐的是内置的,还是我必须在我的应用程序中包含的库?它安全吗?谢谢。
【问题讨论】:
如果你的堆栈上有 Python 是什么版本? 我使用的是应用引擎版本 1,应该是 python 2.5。 【参考方案1】:考虑使用 Django's json lib,它包含在 GAE 中。
from django.utils import simplejson as json
# load the object from a string
obj = json.loads( string )
上面的链接有 Django 的序列化器的例子,这里是 simplejson's documentation 的链接。
如果您正在考虑存储 Python 类实例或对象(而不是列表、字符串、数字和字典的组合),您可能需要查看 pickle。
希望对你有帮助。
顺便说一句,要让 Django 1.0(而不是 Django 0.96)在 GAE 上运行,您可以在 main.py 中使用以下调用,每 this article:
from google.appengine.dist import use_library
use_library('django', '1.0')
编辑:Google App Engine 1.6.0 和 Python 2.7 中的原生 JSON 支持
从 Google App Engine 1.6.0 开始,您可以通过在 app.yaml
中添加 runtime: python27
来 use the Python 2.7 runtime,然后您可以使用 import json
导入原生 JSON 库。
【讨论】:
很好的答案,对我帮助很大。这里只是一个评论:当我使用导入 json 功能时,我在部署我的应用程序时收到 500 服务器错误。但是当我使用 from django.utils import simplejson as json 时,它可以完美运行。【参考方案2】:Google App Engine 现在支持 python 2.7。如果使用 python 2.7,您可以执行以下操作:
import json
structured_dictionary = json.loads(string_received)
【讨论】:
【参考方案3】:在您的应用中包含simplejson 库?
【讨论】:
【参考方案4】:这是一个老问题,但我想我会给出一个更新的、更详细的答案。对于现在登陆这里的用户,您几乎可以肯定使用的是 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 模块的文档页面,这里是 Python 3。
【讨论】:
【参考方案5】:如果您使用的是 Python2.6 或更高版本,我已经成功使用了内置的 json.load 函数。否则,simplejson 在 2.4 上工作,没有依赖关系。
【讨论】:
【参考方案6】:查看json.org的python部分。 JSON 的标准库支持始于 python 2.6,我相信它比应用程序引擎提供的更新。也许是列出的其他选项之一?
【讨论】:
这与 App Engine 无关。以上是关于如何在 Google App Engine 中解析 JSON?的主要内容,如果未能解决你的问题,请参考以下文章
Google App Engine“解析./app.yaml时出错:未知的url处理程序类型”
文件不想被解析(app.yaml Google Cloud Platform - App Engine context)
动态标记和 infoWindow Google Maps API 使用 Google App Engine 通过 JSON 文件解析
Google App Engine Node.js 应用程序 - “解析 app.yaml 时出错:未知 url 处理程序类型”