python文件流读取二进制_Python使用web.py从POST请求中提取二进制文件

1586010002-jmsa.png

I am developing an API that allows outside clients to send a binary file which will be processed. my web.data() is a string and the function I am calling requires a binary. How do I get it into the correct format? Maybe I have the incorrect Headers? how do I extract the binary data. I am using web.py.

-----------------POST request----------------------------------------------------

import json

import requests

files = {'file':('000038fe4b46c210c37bdde767835007', open('000038fe4b46c210c37bdde767835007', 'rb'))}

headers = {'content-type' : 'application/octet-stream', 'X-Auth-Token':'xxxf'}

r = requests.post('http://XXX:8080/v1/binaries', files = files, headers = header

-----------------------API function------------------------------

def POST(self):

a = web.ctx.env.get("HTTP_X_AUTH_TOKEN", None)

creds = authenticator(a)

postdata = web.data().read()

analysis = atklite.FileAnalysis(data=postdata)

metadata = analysis.return_analysis()

------------------------Traceback--------------------------------

File "/usr/lib/pymodules/python2.7/web/application.py", line 242, in process

return self.handle()

File "/usr/lib/pymodules/python2.7/web/application.py", line 233, in handle

return self._delegate(fn, self.fvars, args)

File "/usr/lib/pymodules/python2.7/web/application.py", line 415, in _delegate

return handle_class(cls)

File "/usr/lib/pymodules/python2.7/web/application.py", line 390, in handle_class

return tocall(*args)

File "/home/XXXXXX/ProcessingCode/bfsapi.py", line 75, in POST

postdata = web.data().read()

AttributeError: 'str' object has no attribute 'read'

Thanks

Sorry if the formatting got all messed up in the Post.

解决方案

Even if it is a binary file, reading raw post data would get you a encoded string. You would need to decode to convert to binary data. You can write to a file as follows:

written = open('binary.file', 'wb')

for chunk in rawdata.chunks():

written.write(chunk)

written.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1828. 统计一个圆中点的数目

文章目录1. 题目2. 解题1. 题目 给你一个数组 points ,其中 points[i] [xi, yi] ,表示第 i 个点在二维平面上的坐标。多个点可能会有 相同 的坐标。 同时给你一个数组 queries ,其中 queries[j] [xj, yj, rj] ,表示一个圆心在…

elasticsearch threadpool

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-threadpool.html转载于:https://www.cnblogs.com/SamuelSun/p/4287218.html

python argument list too long_[已解决]Argument list too long如何处理?

Argument list too long 本质是需要处理的长度超过系统的长度,因此无法执行相关命令。经过搜索发现了两种方法,思想都是将参数切分成小的段落进行执行。法一:通过xargs传递参数 (数据量大了还是不太奏效)find . -name "*.log" | xa…

计算机专业内存容量8g,内存容量8g和16g区别

语音内容:大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。以计算机为例,内存容量8g和16g区别如下:1、16GB和8GB内存在同品牌、同芯片规格等情况下,仅存在容量大小区别,即1…

LeetCode 1829. 每个查询的最大异或值(前缀异或 + 位运算)

文章目录1. 题目2. 解题1. 题目 给你一个 有序 数组 nums &#xff0c;它由 n 个非负整数组成&#xff0c;同时给你一个整数 maximumBit 。你需要执行以下查询 n 次&#xff1a; 找到一个非负整数 k < 2^maximumBit &#xff0c;使得 nums[0] XOR nums[1] XOR ... XOR num…

python的运行环境_python-运行环境配置-1

Linux下安装Python3.6和第三方库 如果本机安装了python2&#xff0c;尽量不要管他&#xff0c;使用python3运行python脚本就好&#xff0c;因为可能有程序依赖目前的python2环境&#xff0c; 比如yum&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 不要动现有的…

[objective-c] 08 - 内存管理

OC语言中的内存管理机制为ARC(Automatic Reference Counting,自动引用计数)。于2011年中旬推出&#xff0c;替换陈旧且低效的手动内存管理&#xff0c;关于手动内存管理的内容&#xff0c;本章教程不再讲授。本章主要从以下几个方面对内存管理进行展开讲解。 内存管理原则对象引…

计算机主板最常见的问题,计算机主板功能 电脑实用技巧解决常见问题

电脑实用技巧解决常见问题1.解决问题 插电即开机问题现象&#xff1a;有些朋友有关机后断开电源板电源的习惯&#xff0c;可是却常常被一个问题困扰&#xff0c;就是电源板一通电&#xff0c;计算机就自动开机了&#xff0c;Power键形同虚设。解决问题&#xff1a;有些主板在BI…

zeal刷新不出来_饥荒:游戏中的这些事物都是无中生有,几乎可以无限制刷新!...

在饥荒这款经典的生存类游戏中&#xff0c;其事物的“刷新”和许多其他的生存游戏不太一样&#xff0c;有些生存游戏的事物刷新是定时定量的&#xff0c;而饥荒则不完全&#xff0c;就拿牛群来形容&#xff0c;他们必须要有多个成年的牛进行繁殖才会出现新的牛&#xff0c;而像…

数字逻辑基础与verilog设计_数字电路学习笔记(五):逻辑设计基础

马上就要正式进入电路设计了&#xff0c;再来看最后一个知识点&#xff1a;逻辑设计吧。之前我们花了两章&#xff0c;探讨了逻辑运算是什么&#xff0c;怎么算&#xff1b;但还有最后一个大问题&#xff0c;巧妇难为无米之炊&#xff0c;我们得先有一个逻辑式&#xff0c;才能…

完整的开发一个ContentProvider步骤

1、定义自己的ContentProvider类&#xff0c;该类需要继承Android提供的ContentProvider基类。2、向Android系统注册这个"网站"&#xff0c;也就是在AndroidManifest.xml文件中注册这个ContentProvider&#xff0c;就像注册Activity一样。注册ContentProvider时需要为…

河北省高校计算机大赛,河北省教育厅关于举办2016年华北五省(市、自治区)及港澳台大学生计算机应用大赛河北赛区竞赛的通知...

有关高等学校&#xff1a;为深入贯彻落实《国家中长期教育改革和发展规划纲要(2010-2020年)》和教育部《关于全面提高高等教育质量的若干意见》(教高﹝2012﹞4号)精神&#xff0c;推动区域高等教育合作发展、资源共享&#xff0c;培养大学生创新能力、实践能力和团队协作意识&a…

adhoc包无法安装_iOS 5.1.1 设备不能安装AdHoc问题版本号

之前苹果更新了审计规范&#xff0c;要求必须支持64通过苹果的审核权限位架构的应用。但运营商表示反馈。使用iOS5.1.1该系统无法安装我们的包Adhoc版本号。认为非常莫名。由于我们在Deployment Target上确实写着5.1.1&#xff0c;全公司也都没人用这个系统了。在运营纠结这个问…

c盘清理代码_拒接卡顿,从c盘减负、系统修复及网络加速做起!奥利~~~

你是否有过系统卡顿&#xff0c;C盘饱满&#xff1f;你是否有过蓝屏、闪退&#xff1f;你是否有过网络爆卡&#xff1f;今天&#xff0c;他来了&#xff0c;一篇文章教会你清理C盘、修复系统、网络加速&#xff01;&#xff01;&#xff01;首先&#xff0c;按下winr键&#xf…

LeetCode 1833. 雪糕的最大数量(贪心)

文章目录1. 题目2. 解题1. 题目 夏日炎炎&#xff0c;小男孩 Tony 想买一些雪糕消消暑。 商店中新到 n 支雪糕&#xff0c;用长度为 n 的数组 costs 表示雪糕的定价&#xff0c;其中 costs[i] 表示第 i 支雪糕的现金价格。 Tony 一共有 coins 现金可以用于消费&#xff0c;他…

HDU 3605Escape(缩点+网络流之最大流)

题目地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid3605 本来打算昨天写两道题的&#xff0c;结果这个题卡住了&#xff0c;最后才发现是最后的推断条件出错了&#xff0c;推断满流的条件应该是与n的比較&#xff0c;居然写成与全部星球总容量的比較了。&#xf…

为学好计算机 要采取什么措施,计算机概念教学的内容及对策

摘 要:介绍有关概念教学的重要性及在概念教学中重视培养学生的思维能力、概念教学过程中应注意的问题和概念教学中采取的包括淡化、浅化、深化、跨越,在概念教学中应注意的问题,关键词:概念教学;淡化;浅化;深化;跨越中图分类号:G434文献标识码:AAccording to Different Content…

用递归计算一个数字每一位相加的结果。_leetcode 2 两数相加(c++)

两种解法&#xff0c;第一种是在原有的两个链表中选择更长的那个作为结果返回&#xff0c;虽然节约了空间&#xff0c;但是增加了时间复杂度&#xff0c;而且没有用到如何设置链表的增加与删除&#xff0c;第二种看起来清爽很多&#xff0c;逻辑也清晰。### 题目给出两个非空的…

LeetCode 1834. 单线程 CPU(排序 + 优先队列)

文章目录1. 题目2. 解题1. 题目 给你一个二维数组 tasks &#xff0c;用于表示 n​​​​​​ 项从 0 到 n - 1 编号的任务。 其中 tasks[i] [enqueueTimei, processingTimei] 意味着第 i​​​​​​​​​​ 项任务将会于 enqueueTimei 时进入任务队列&#xff0c;需要 pro…

tc溜溜865手机投屏卡_溜溜 TC Games 官网_专题

1、智能按键功能&#xff1a;该功能通过宏命令方式实现智能精准按键(vip)备注&#xff1a;a&#xff1a;在键位设置中勾选智能按键&#xff0c;并重新选用官方一键切雷vip键位b&#xff1a;目前仅支持软件内设置为 720 分辨率&#xff0c;及 *1080p 分辨率的手机c&#xff1a;该…