首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python-3.x中的array()函数出错

python-3.x中的array()函数出错
EN

Stack Overflow用户
提问于 2022-03-18 13:11:29
回答 1查看 52关注 0票数 0

我是新来的蟒蛇。

我的代码之一是:

代码语言:javascript
复制
def _checksum(self, data):

    if sum(len(i) for i in data) & 1:
        data.append('\0')

    **words = array('h', ''.join(data))**
    checksum = 0
    for word in words:
        checksum += word & 0xffff
    hi = checksum >> 16
    low = checksum & 0xffff
    checksum = hi + low
    checksum += (checksum >> 16)
    return ~checksum & 0xffff

在python 2中,它的工作,但在python 3中有错误:

TypeError:序列项0:预期的str实例,找到的字节

据我所知,代码行有问题:

代码语言:javascript
复制
words = array('h', ''.join(data))

但我不知道怎么解决这个问题

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2022-03-18 13:17:10

代码中的问题不是array(),而是join()函数。

当您使用join时

代码语言:javascript
复制
words = array('h', ''.join(data))

您使用的是str.join方法,它要求所有参数都是字符串。但是在您的data中,值是bytes,或者至少第一个是字节。

如果要连接字节,则必须将其使用如下

代码语言:javascript
复制
words = array('h', b''.join(data))

而且所有的值都必须是数据中的字节。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71527573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档