“类型错误:没有编码的字符串参数”,但字符串已编码?

2023-12-09

我正在努力转换现有计划从Python2到Python3。该程序中的方法之一通过远程服务器对用户进行身份验证。它将提示用户输入密码。

def _handshake(self):
    timestamp = int(time.time())
    token = (md5hash(md5hash((self.password).encode('utf-8')).hexdigest()
                + str(bytes('timestamp').encode('utf-8'))))
    auth_url = "%s/?hs=true&p=1.2&u=%s&t=%d&a=%s&c=%s" % (self.name,
                                                          self.username,
                                                          timestamp,
                                                          token,
                                                          self.client_code)
    response = urlopen(auth_url).read()
    lines = response.split("\n")
    if lines[0] != "OK":
        raise ScrobbleException("Server returned: %s" % (response,))
    self.session_id = lines[1]
    self.submit_url = lines[3]

这种方法的问题在于,整数转换为字符串后,需要进行编码。但据我所知,它已经被编码了?我发现这个问题但我很难将其应用到这个程序的上下文中。

这是给我带来问题的线路。

  • + str(bytes('timestamp').encode('utf-8'))))
    • TypeError: string argument without an encoding

我尝试过使用其他方法来执行此操作,但都存在不同类型的错误。

  • + str(bytes('timestamp', 'utf-8'))))
    • TypeError: Unicode-objects must be encoded before hashing
  • + str('timestamp', 'utf-8')))
    • TypeError: decoding str is not supported

我仍在开始学习Python(但我有Java的初级到中级知识),所以我还没有完全熟悉这门语言。有人对这个问题可能是什么有任何想法吗?

Thanks!


此错误是由于您在 python 3 中创建字节的方式造成的。

你不会做bytes("bla bla")只是b"blabla"或者您需要指定编码类型,例如bytes("bla bla","utf-8")因为它需要知道原始编码是什么,然后才能将其转换为数字数组。

然后错误

TypeError: string argument without an encoding

应该消失。

您有 bytes 或 str。如果你有一个 bytes 值并且想将其转换为 str 你应该这样做:

my_bytes_value.decode("utf-8")

它会返回给你一个str。

我希望它有帮助!祝你今天过得愉快 !

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“类型错误:没有编码的字符串参数”,但字符串已编码? 的相关文章

随机推荐

  • Powershell - 获取 ADComputer -properties 成员

    我试图查找我们环境中是否有任何服务器尚未应用于特定组 我有一个组列表 我们使用这些组在特定的白天 晚上 手动等修补我们的 Windows 服务器 我正在尝试检查我们环境中的任何服务器是否错误地放置在域中并错过了此步骤 没有有一个补丁组成员
  • java.lang.OutOfMemoryError:启动时Java堆空间

    前几天我开始遇到一个java lang OutOfMemoryError Java heap spaceMATLAB 启动时出现异常 在运行任何代码或向路径添加任何内容之前 MATLAB 加载的默认目录中也没有文件 我在 Windows 7
  • 在 C# 中使用 Microsoft Graph API 获取所有电子邮件

    我有以下函数来使用 Graph API 获取消息 var client new GraphServiceClient authenticationProvider var messages await client Users use em
  • 找不到中间过滤器的组合

    我正在使用 Visual Studio 制作一个 Windows 窗体应用程序 该应用程序允许您输入照片的名称 然后将该图像保存到网络上的特定位置 当我在笔记本电脑上使用它时 效果非常好 但是 当我尝试在桌面上运行它时 它不起作用 相反 我
  • 定义结构时避免“重新定义 typedef”警告

    我定义了一些相互引用的结构 并在使用它们之前对结构进行类型定义 因此每个结构都 了解 其他结构 如果没有这个 就会出现编译错误 不确定这是否必要或正确 现在 当使用 gcc 编译时 我收到 redefinition of typedef 警
  • Javascript - 将字符串中的所有数字更改为下标

    我有一个输入框 用户在其中输入化学式 我将他们的输入显示在表格中 并在我的 javascript 文件中包含以下代码 document getElementById entered innerHTML userIn 其中 userIn 是输
  • 如何执行逐像素匹配来检查模板数据库中是否存在查询图像[重复]

    这个问题在这里已经有答案了 我正在研究手背静脉识别系统 我已经对图像进行了二值化和预处理 然后对细化的静脉图案进行特征提取 白色像素坐标 如下图 图 1 所示 对 10 个图像重复这些步骤 并将它们的坐标存储在 txt 文件中 现在 假设我
  • 如何使用 sendAsynchronousRequest:queue:completionHandler:

    两部分问题 第一部分 我正在尝试向我的数据库创建异步请求 我目前正在同步进行 但是我想学习这两种方法 以更好地理解正在发生的事情 目前我已经像这样设置了同步调用 IBAction setRequestString NSString stri
  • 在 .NET 中存储数据的方法

    我正在寻找在 NET 中的 Windows 窗体应用程序中存储数据的方法 我想让系统的输入数据持久化 因此当我关闭程序并再次打开它时 会检索数据 除了创建链接数据库之外 还有哪些方法可以实现此目的 我们很高兴地赞赏这些例子 有数十种不同的方
  • 尝试安装 HAXM 时出错 - Intel VT-x 已关闭

    我已经安装了 Android Studio 但在尝试安装 HAXM 时收到此错误 我尝试在BIOS中启用虚拟化 但并没有解决问题 然后我在 Windows 8 1 64 位 中禁用了 Hyper V 重新启动计算机后 没有任何变化 并且由于
  • 融合类型中的 C++ 类

    我希望为一堆 C 类实现 python 包装器 在 pxd 的某个地方我有 cdef cppclass FooImpl1 FooImpl1 int foo cdef cppclass FooImpl2 FooImpl2 int foo 我想
  • 在 EL 表达式中使用多个布尔条件

    我想知道如何在 EL 中组合多个布尔条件 我有以下示例 但它不起作用
  • 使用 JNI 访问我的共享库时出现“未定义的引用”

    我正在尝试构建一个版本Botan 加密算法库 使用 JNI 在 Android 上运行一些本机 C 程序 我已经使用 NDK 工具链 NDK R5b 成功创建了 libbotan so 没有任何错误 但是 当我从 Android 项目 示例
  • Select2 - 搜索通配符匹配项

    我正在使用 Select2 来设计我的选择框并添加功能 我想知道如何使搜索规则更加宽松 目前 如果我在下拉列表中有 新墨西哥 我可以搜索 墨西哥 或 新墨西哥 来匹配选择选项 但如果我输入 墨西哥新 我会得到 找不到结果 有没有办法扩展搜索
  • 使用 Meteor 动态加载每个模板的 JS/CSS

    我理解几个问题 即this 这种性质已经发布 但尚未找到可靠的解决方案 从表面上看 Meteor 目前缺乏动态加载 渲染不同 UI JavaScript 的能力 即uilang 或每个模板的 CSS 文件 在我的应用程序中 我的模板需要特定
  • Visual Studio 2005 和 .Net 框架 1.1

    是否可以使用 Visual Studio 2005 创建和维护 Net Framework 1 1 应用程序 实际上有一个 MSBuild 扩展允许这种情况 它被称为MSBee您可以在 CodePlex 上找到它 MSBuild Extra
  • Java和无符号字节[重复]

    这个问题在这里已经有答案了 我需要使用无符号字节数组 我需要通过网络将某些字符发送到服务器 其中一些字符大于 127 我有下面代码的简化版本来尝试理解这个概念 int i 160 byte j byte i System out print
  • 如何在VB中从数组元素中得出所有可能的总和组合

    如果有一个数组 其中元素为 1 2 3 4 则程序应返回另一个数组 其中包含所有组合的总和 1 2 3 4 3 1 2 4 1 3 5 1 4 5 2 3 6 2 4 7 3 4 6 1 2 3 7 1 2 4 8 1 3 4 9 2 3
  • 无法使用 Oreo android 更改我的应用程序的语言

    EDIT 我使用了区域设置更改的解决方案来更改应用程序的语言 但它在奥利奥中不起作用 它在我的三星 S4 上运行良好 但在我的 S9 上运行不佳 所以我正在像这样进行区域设置更改 public void initAppLanguages C
  • “类型错误:没有编码的字符串参数”,但字符串已编码?

    我正在努力转换现有计划从Python2到Python3 该程序中的方法之一通过远程服务器对用户进行身份验证 它将提示用户输入密码 def handshake self timestamp int time time token md5has