当我们使用Python的requests库进行POST请求时,可能会遇到需要提交多层字典数据的情况。这种情况下,我们可以采用如下的方法来完成POST请求。
创建多层字典
首先,我们需要创建多层字典。比如,假设我们需要提交以下JSON数据:
{
"user": {
"name": "John Doe",
"email": "johndoe@example.com"
},
"message": "Hello, world!"
}
我们可以通过如下的代码来创建这个字典:
data = {
'user': {
'name': 'John Doe',
'email': 'johndoe@example.com'
},
'message': 'Hello, world!'
}
发送POST请求
接下来,我们可以使用requests库的post方法来发送POST请求:
import requests
url = 'http://example.com/api/post_data'
response = requests.post(url, json=data)
在这个例子中,我们使用了requests库的json参数来指定POST数据。这里的json参数会自动将我们的字典数据转换为JSON格式的数据,并设置Content-Type头为application/json。
多层字典示例
下面再举一个多层字典的例子。假设我们要提交以下JSON数据:
{
"customer": {
"name": "John Doe",
"address": {
"street": "123 Main St.",
"city": "Anytown",
"state": "CA",
"zip": "90210"
}
},
"items": [
{
"sku": "ABC123",
"name": "Widget",
"quantity": 1,
"price": 9.99
},
{
"sku": "DEF456",
"name": "Gizmo",
"quantity": 2,
"price": 14.99
}
],
"total": 39.97
}
则我们可以如下的方式构造字典:
data = {
'customer': {
'name': 'John Doe',
'address': {
'street': '123 Main St.',
'city': 'Anytown',
'state': 'CA',
'zip': '90210'
}
},
'items': [
{
'sku': 'ABC123',
'name': 'Widget',
'quantity': 1,
'price': 9.99
},
{
'sku': 'DEF456',
'name': 'Gizmo',
'quantity': 2,
'price': 14.99
}
],
'total': 39.97
}
最后我们可以使用如下代码发送POST请求:
import requests
url = 'http://example.com/api/post_data'
response = requests.post(url, json=data)
注意,如果我们想发送其他类型的POST数据,比如表单数据,则可以使用data参数代替json参数。这个时候,我们需要将字典数据转换为字符串类型的数据。通常可以使用Python的urlencode方法来实现转换。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python requests post多层字典的方法 - Python技术站