发送字典列表作为带有请求的字典值

梅德韦杰夫·安德烈(Medvedev Andrey)

我有客户端服务器应用程序。我定位了麻烦,并且有这样的逻辑:

客户:

# -*- coding: utf-8 -*-
import requests


def fixing:
    response = requests.post('http://url_for_auth/', data={'client_id': 'client_id', 
                             'client_secret':'its_secret', 'grant_type': 'password', 
                             'username': 'user', 'password': 'password'})
    f = response.json()
    data = {'coordinate_x': 12.3, 'coordinate_y': 8.4, 'address': u'\u041c, 12', 
            'products': [{'count': 1, 'id': 's123'},{'count': 2, 'id': 's124'}]}
    data.update(f)
    response = requests.post('http://url_for_working/, data=data)
    response.text #There I have an Error about which I will say later

oAuth2运作良好。但是在服务器端,request.data中没有任何产品

<QueryDict: {u'token_type': [u'type_is_ok'], u'access_token': [u'token_is_ok'], 
             u'expires_in': [u'36000'], u'coordinate_y': [u'8.4'], 
             u'coordinate_x': [u'12.3'], u'products': [u'count', u'id', u'count', 
             u'id'], u'address': [u'\u041c, 12'], u'scope': [u'read write'], 
             u'refresh_token': [u'token_is_ok']}>

QueryDict的这一部分让我难过...

'products': [u'count', u'id', u'count', u'id']

当我尝试制作python字典时:

request.data.dict()
... u'products': u'id', ...

并且确保其他字段与Django序列化程序的验证配合良好。但事实并非如此,因为我的价值观不正确。

梅德韦杰夫·安德烈(Medvedev Andrey)

看起来像请求(因为它具有默认的x-www-encoded-form形式)不能包含字典列表作为dict中键的值,所以...在这种情况下,我应该使用json。最后,我做了这个功能:

import requests
import json


def fixing:
    response = requests.post('http://url_for_auth/', data={'client_id': 'client_id', 
                         'client_secret':'its_secret', 'grant_type': 'password', 
                         'username': 'user', 'password': 'password'})
    f = response.json()
    headers = {'authorization': f['token_type'].encode('utf-8')+' '+f['access_token'].encode('utf-8'), 
               'Content-Type': 'application/json'}
    data = {'coordinate_x': 12.3, 'coordinate_y': 8.4, 'address': u'\u041c, 12', 
        'products': [{'count': 1, 'id': 's123'},{'count': 2, 'id': 's124'}]}
    response = requests.post('http://url_for_working/', data=json.dumps(data), 
                              headers=headers)
    response.text

在那里,我得到了正确的回应。解决了!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有字典列表的字典

来自分类Dev

将两个列表转换为带有值作为列表的字典

来自分类Dev

如何快速发送带有嵌套字典的POST请求

来自分类Dev

带有元组列表的嵌套字典作为来自python中DATA文件的值

来自分类Dev

列表的共享字典作为值

来自分类Dev

带有字典列表作为字段的 R 数据框

来自分类Dev

带有数组作为值的Swift字典

来自分类Dev

带有值列表的Python中的嵌套字典理解

来自分类Dev

如何从列表中删除带有NaN值的字典

来自分类Dev

带有字典的列表中的最大值

来自分类Dev

使用python在csv中存储带有列表值的字典

来自分类Dev

访问作为列表列表的字典值

来自分类Dev

作为字典值的 Python 列表列表

来自分类Dev

发送带有请求的json以在节点中表达

来自分类Dev

从子域发送带有请求的Cookie

来自分类Dev

如何发送带有请求承诺的表格?

来自分类Dev

AFNetworking发送带有请求的标头

来自分类Dev

Python-将字典列表变成带有列表的字典

来自分类Dev

将字典列表作为字典关键字的值

来自分类Dev

从值中删除字典作为字典中的列表?

来自分类Dev

使用django rest framerwork将对象的列表作为字典返回并带有键作为对象id

来自分类Dev

淘汰赛-以列表作为值的字典

来自分类Dev

Python:字典作为列表的值-启动

来自分类Dev

将列表作为值时迭代字典

来自分类Dev

用列表作为值遍历 python 字典

来自分类Dev

AFNetworking 2.0发送带有字典参数数组的发布请求

来自分类Dev

在AFNetworking 3.0中发送带有正文字典的POST请求

来自分类Dev

Python 选择带有请求的下拉值

来自分类Dev

在 curl 请求中将嵌套字典作为数据发送

Related 相关文章

热门标签

归档