我正在尝试对请求执行以下操作:

data = {'hello', 'goodbye'}

json_data = json.dumps(data)

headers = {

'Access-Key': self.api_key,

'Access-Signature': signature,

'Access-Nonce': nonce,

'Content-Type': 'application/json',

'Accept': 'text/plain'

}

r = requests.post(url, headers=headers, data=json_data,

files={'file': open('/Users/david/Desktop/a.png', 'rb')})

但是,出现以下错误:

ValueError: Data must not be a string.

请注意,如果我删除files参数,它会根据需要工作.如果包含文件,为什么请求不能让我发送json编码的数据字符串?

请注意,如果我将数据更改为普通的python字典(而不是json编码的字符串),则上述方法有效.因此,问题似乎在于,如果文件未经过json编码,则数据无法进行json编码.但是,我需要对我的数据进行编码以匹配由API创建的哈希签名.

解决方法:

当您将主体指定为JSON字符串时,您将无法再附加文件,因为文件上传需要MIME类型multipart / form-data.

您有两种选择:

>将您的JSON字符串封装为表单数据(类似于json => json.dumps(data))

>在Base64中对文件进行编码,然后在JSON请求正文中进行传输.虽然是looks like a lot of work.

标签:python-requests,python

来源: https://codeday.me/bug/20191120/2047807.html

python中valueerror是什么意思_python-ValueError:数据不得为字符串相关推荐

  1. python中函数startswith的用法_Python中用startswith()函数判断字符串开头的教程

    函数:startswith() 作用:判断字符串是否以指定字符或子字符串开头 一.函数说明语法:string.startswith(str, beg=0,end=len(string)) 或strin ...

  2. [转载] python中for语句用法_详解Python中for循环的使用_python

    参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...

  3. python中for语句用法_详解Python中for循环的使用_python

    这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...

  4. python中异或怎么算_python 异或运算的前提_异或运算公式

    Python基础(10)–数字-Python-第七城市 609x288 - 73KB - JPEG Python基础(10)--数字_资讯_突袭网 609x288 - 33KB - JPEG pyth ...

  5. python中的队列和栈_python的队列和栈

    (一)队列和栈的区别 1.队列: 队列是一种特殊的线性表.其两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(rear),允许插入的一端 ...

  6. python中最基本的系列_Python中最基本的10个内容

    Python简单易学,但又博大精深.许多人号称精通Python,却不会写Pythonic的代码,对很多常用包的使用也并不熟悉.学海无涯,我们先来了解一些Python中最基本的内容. Python的特点 ...

  7. pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法

    在python中使用requests 模拟浏览器发送请求数据的方法 如下所示: import requests url='http://####' proxy={'http':'http://#### ...

  8. 站长在线Python精讲:在Python中使用split()方法分割、使用join()方法合并字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用split()方法分割.使用join()方法合并字符串详解>.本知识点主要内容有:在Python中使用s ...

  9. python中装饰器的作用_Python装饰器详解,详细介绍它的应用场景

    装饰器的应用场景附加功能 数据的清理或添加:函数参数类型验证 @require_ints 类似请求前拦截数据格式转换 将函数返回字典改为 JSON/YAML 类似响应后篡改为函数提供额外的数据 moc ...

  10. python中find函数忽略大小写_python字符串(大小写、判断、查找、分割、拼接、裁剪、替换、格式化)...

    一.通用操作 1.Python len() 方法返回对象(字符.列表.元组等)长度或项目个数. 语法 len()方法语法: len( q ) 参数 q -- 对象. 返回值 返回对象长度. 实例 以下 ...

最新文章

  1. Python 删除list 里面的空值
  2. webstorm github怎么用_前端开发神器WebStorm发布最新版本2019.3,代码完成更加智能...
  3. Oracle 数据库基础学习 (六) 子查询
  4. Java中对象的三种状态
  5. dc/os_DC / OS中具有Java和数据库应用程序的服务发现
  6. 为什么jupyterlab运行程序的时候会自动停止_气象人的JupyterLab
  7. python从入门到精通百度云资源-Python从入门到精通(资源汇总)
  8. 我的Mac中毒了,病毒居然叫做MacPerformance
  9. 基于Open XML 导出数据到Excel
  10. 【图像隐写】基于matlab DWT数字水印多种攻击效果对比【含Matlab源码 1134期】
  11. [Linux] RIO C++封装
  12. 用Js怒刷LeetCode
  13. 让Firefox支持Wap浏览器功能的插件
  14. 北邮通信博士万字长文,带你深入了解 4G/5G 区别!
  15. jsp获取服务器中信息,jsp 获取服务器主机名
  16. android 联系人 拼音,Android 2.1 (Eclair)的中文联系人拼音检索问题
  17. 为何敢称万物追焦?小米12 系列CyberFocus技术详解
  18. SMT操作员是做什么的?工作职责?
  19. win连接被远程计算机终止,windows系统远程连接后马上断开提示“远程计算机已结束连接”的解决方法...
  20. 如何将nii图像文件转换为png图像,亲测有效!!!

热门文章

  1. Non-function value encountered for slot “role“. Prefer function slots for better performance.
  2. 论文笔记-Depth Estimation via Affinity Learned with Convolutional Spatial Propagation Network
  3. 【转】安卓(Android)系统的50个秘密
  4. Android事件分发机制:示例(三)
  5. 系统资源严重不足,无法启动API
  6. 实操笔记02-random.normal函数
  7. 崔尚森《web开发技术》复习提纲
  8. 设计一个低电平VI转换器
  9. 解决:Jupyter notebook无法自动弹出网址
  10. 关于汉字转拼音,看这一篇就够了。