有没有办法通过werkzeug(烧瓶)的请求发送Immutabledict中的嵌套dict的值?

时间:2012-12-16 08:11:22

标签: python request flask python-requests werkzeug

我过去曾问过问题,但仍面临问题。     address_dict = {'地址':{'美国':'旧金山','美国':'纽约','英国':'伦敦'}}

当通过请求发送上述参数时,如何使用Flask上的request.form获取地址密钥中的值?

import requests
url =  'http://example.com'
params = {"address": {"US": "San Francisco", "UK": "London", "CH": "Shanghai"}}
requests.post(url, data=params) 

然后我在flask.request的背景下得到了这个。

ImmutableMultiDict([('address', u'US'), ('address', 'US'), ('address', 'UK')])

如何获取每个地址键的值?

感谢。

1 个答案:

答案 0 :(得分:13)

您将复杂的嵌套数据结构作为HTML表单发送,它将无法像您期望的那样工作。将其编码为JSON:

import json
import requests

url = 'http://example.com/'
payload = {"address": {"US": "San Francisco", "UK": "London", "CH": "Shanghai"}}
data = json.dumps(payload)
headers = {'Content-Type': 'application/json'}
requests.post(url, data=data, headers=headers)

在Flask app中,可以通过request.json访问(已经解码)。