gpt4 book ai didi

python - 谷歌应用引擎 : Python: WebOb: How to get POST data in JSON format?

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:10 24 4
gpt4 key购买 nike

我正在 Google App Engine 平台上构建一个网络应用程序,它使用 webapp2,它使用 WebOb。我想以 JSON 格式POST 一些数据,包括嵌套数组和字典。例如:

$.post('/addvendor', {'vendor': {'name': 'test', 'description': 'a good company', 'tags':['foo', 'bar']}}, function(data){console.log(data)}, 'application/json')

但是,在服务器端,数据以平面“MultiDict”对象的形式出现,与我POST编辑的原始嵌套 JSON 对象完全不同。例如:

>>> print self.request.params.items()
[(u'vendor[name]', u'test'), (u'vendor[description]', u'a good company'), (u'vendor[tags][]', u'foo'), (u'vendor[tags][]', u'bar')]

这个对象很难解析。在我的服务器代码中,有没有办法在服务器上以标准 JSON 格式或至少使用嵌套字典和数组的 Python 等效格式获取相同数据,以便我可以轻松地操作和检查数据?

最佳答案

(根据 jayhendren 的帮助更新)您应该使用 $.ajax 并手动设置 contentType='application/json; charset=utf-8' 因为 $.post 使用默认的“application/x-www-form-urlencoded;”内容类型。您还需要使用 JSON.stringify 将数据手动编码为 JSON 字符串:

$.ajax({url:'/addvendor', 
type: 'post',
data:JSON.stringify({'vendor': {'name': 'test', 'description': 'a good company', 'tags':['foo', 'bar']}}),
contentType:'application/json; charset=utf-8',
dataType: "json",
success:function(data){console.log(data)}})

...

print json.loads(self.request.body)

关于python - 谷歌应用引擎 : Python: WebOb: How to get POST data in JSON format?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19205604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com