python struct 45s_python32版本,struct.error: argument for 's' must be a bytes object - 小众知识...
@for ever 2012-06-25
在python32版本下面,下面的代码:
[python] view plaincopy
msg = pack(">H%ds" % len(reason), code, reason)
执行后出现如下的错误:
[plain] view plaincopy
struct.error: argument for 's' must be a bytes object
做如下修改,错误解决:
[python] view plaincopy
msg = pack(">H%ds" % len(reason), code, reason.encode('utf-8'))
[python] view plaincopy
关于struct.pack函数,参数个数是无限的。第一个参数定义打包格式,
剩余的所有参数都是要打包的内容。
第一个格式参数具体写法如下:
Format c Type
Python Note
x pad byte no value
c char string of length 1
b signedchar integer
B unsignedchar
integer
? _Bool bool (1)
h short integer
H unsignedshort
integer
i int integer
I unsignedint
integer or long
l long integer
L unsignedlong
long
q longlong long (2)
Q unsignedlonglong
long (2)
f float float
d double float
s char[] string
p char[] string
P void* long
此外,还包含相应的大/小端设置(如果忽略该设置,默认
@ native native
= native standard
< little-endian
standard
> big-endian standard
! network (= big-endian)
standard
@forandever 2012-6-25
3
down vote
favorite
I am attempting to execute the code:
values = (1, 'ab', 2.7)
s.struct.Struct('I 2s f')
packed = s.pack(*values)
But I keep getting the error:
Traceback (most recent call last):
File "", line 1, in
struct.error: argument for 's' must be a bytes object
Why? How do I fix this?
With Python 3, 'ab' isn't a bytes object, what was called a str on Python 2, it's unicode. You need to use:
values = (1, b'ab', 2.7)
which tells Python that 'ab' is a byte literal. See PEP 3112 for more info.
shareimprove this answer
answered Apr 10 '12 at 3:09
agf
55.1k11123145
2
This answer should be marked as THE answer to the question. – rbaleksandar Sep 29 '13 at 11:33
python struct 45s_python32版本,struct.error: argument for 's' must be a bytes object - 小众知识...相关推荐
- python3 struct.pack方法报错argument for 's' must be a bytes object
在python3下使用struct模块代码 fileHead = struct.pack('128sl', os.path.basename(filePath),os.stat(filePath).s ...
- python gui Gooey 报错 error: argument command: invalid choice:
运行程序时报错: usage: main_gui_batcmm.py [-h] {Run Reset} ... main_gui_batcmm.py: error: argument command: ...
- ERROR 程序出错,错误原因:'bytes' object has no attribute 'read'
使用json解析数据时,通常遇到这里就会出现问题'bytes' object has no attribute 'read',这是由于使用的json内置函数不同,一个是load另一个是loads. i ...
- python struct pack string_python struct pack fmt格式
Python使用struct处理二进制 有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用 struct来处理c ...
- python struct.unpack和struct.pack详解
Python相关文档链接: https://docs.python.org/3/library/struct.html#format-characters 简介 struct模块用于将外部压缩的格式字 ...
- 问题记录:multiple definition of `xxxx` 问题解决 struct定义类的error:“unknown type name“
一.multiple definition of xxxx 问题解决 问题背景 我在一个头文件里面定义了一个变量,并赋予初值,然后再两个.c 文件里引入了这个头文件,结果就报错 multiple de ...
- [Python] ERROR:argument of type ‘datetime.date‘ is not iterable
项目场景: create_date = date.today() tbitem['date'] = create_date 问题描述: 当将 date.today() 直接赋值给 字典时报错 ERRO ...
- 目标检测实战:4种YOLO目标检测的C++和Python两种版本实现
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨nihate 审稿丨邓富城 编辑丨极市平台 导读 本文作者使用C++编写一套基于OpenCV的Y ...
- 【深度学习】目标检测实战:4种YOLO目标检测的C++和Python两种版本实现
作者丨nihate 审稿丨邓富城 编辑丨极市平台 导读 本文作者使用C++编写一套基于OpenCV的YOLO目标检测,包含了经典的YOLOv3,YOLOv4,Yolo-Fastest和YOLObile ...
- Python 2.7版本与3.6的不同
许多Python初学者都会问:我应该学习哪个版本的Python.对于这个问题,我的回答通常是"先选择一个最适合你的Python教程,教程中使用哪个版本的Python,你就用那个版本.等学得差 ...
最新文章
- Linux nc命令
- 逐步优化求解最大子序列和
- redis相对于mysql有什么劣势
- 【图像处理基础】基于matlab GUI图像处理(反色+亮度+二值化+空间肤色检测)【含Matlab源码 1008期】
- linux小记 查看dd进度,linux小记:查看dd进度
- 2019届高三理科数学选择填空整理
- 计算机学院新增电子信息!齐鲁工业大学
- Linux操作系统之安装Linux虚拟机
- IDEA SpringBoot项目Docker一键部署
- 【免费领取】趣味测试小程序源码/内置超多趣味测评+可插入流量主广告位微信小程序源码
- 数据库原理—数据查询
- 可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决)
- oppoR11S安装应用一直失败
- Mac下独立设置触控板和鼠标的滚动方向
- IC失效分析芯片测试
- 一次性弄清 高通骁龙芯片最新产品线简介
- android电视直播卡顿,电视盒子看直播卡顿原因分析以及教你解决方法!
- Springboot项目使用jdk17启动报错:module java.base does not “opens java.lang.invoke“
- 红米3s微信无法连接到服务器,红米手机安装微信一直失败为什么?
- ROS之Turtlebot 构图,导航仿真
热门文章
- php 判断来源 微信客户端_常见WebShell客户端的流量特征及检测思路
- 【数学建模】基于matlab模拟十字路口车辆通行【含Matlab源码 1106期】
- 【人脸识别】基于matlab GUI Gabor+SVM比较PCA+SVM人脸识别【含Matlab源码 685期】
- 遗传算法是一种进化算法_一种算法的少量更改可以减少种族主义的借贷
- mysql 行转列 列转行_行(列)转列(行)实例分享 - 正则表达式提高效率
- 两转变两服务器,两大服变鬼两老服制霸,《魔兽世界》怀旧免转结束后的服务器调查...
- arduino cc3000 php,【arduino】新手求助, 想问一下关於CC3000设置的问题
- docker mysql 备份_docker mysql数据备份xtrabackup
- 爬虫python漏洞群_『Python』 爬取 WooYun 论坛所有漏洞条目的相关信息
- 弱网环境搭建方案选型