繁体   English   中英

有没有办法解码 Python 中的字符串 object 中的字节? [复制]

Is there a way to decode bytes inside a string object in Python? [duplicate]

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

让我更清楚。

我在 Python 中收到一个string ,如下所示:

file = "b'x\\x9c\\xb4'"

file的类型是str 但是您可以在该字符串中看到<class 'bytes'>的格式。 这是file已经编码后调用str(file)的结果。 我想解码它,但我不知道如何解码字符串 object 中的字节。

我的问题是:有没有办法将file解释为bytes而不是str而不必调用bytes(file, 'utf-8')file.encode('utf-8')东西? 这些方法的问题是我会像之前所说的那样对已经编码的字节进行编码。

为什么我需要那个?

我正在构建一个 API 并且我需要将一个非常大的字符串作为 JSON 值发回。 由于我有足够的空间来压缩它,我结束了使用zlib

import zlib
file = BIG_STRING
file_compressed = zlib.compress(BIG_STRING.encode(utf-8)) # Since zlib expects a bytes object
send_back({"SOME_BIG_STRING": str(file_compressed)})

我将它作为字符串发送回来,因为我不能将它作为字节 object 发送回来,它不支持。 如果我尝试在发送之前对其进行解码压缩,我最终会遇到错误:

send_back({"SOME_BIG_STRING": file_compressed.decode('utf-8')})
-> UnicodeDecodeError: utf-8' codec can't decode byte 0x9c in position 1: invalid start byte

当我稍后在程序中收到相同的字符串时,我发现自己陷入了最初描述的问题。

我现在缺乏能够做一些解决方法的知识,但找不到答案。 如果有人可以帮助我,我将不胜感激!

1 个回复

无论如何,如果您没有找到任何其他解决方案,您可以调用eval("b'x\\x9c\\xb4'")并获得结果b'x\x9c\xb4' 但是在常见情况下不建议使用eval ,这将是一个不好的做法。

1 这是一种在python中编码和解码字符串的安全方法吗?

我创建了一个非常简单的密码管理器 - 而不是GUI。 基本上我的Python程序生成一串字符,我编码该密码,然后将编码的表单存储到加密的txt文件中。 现在的问题是,我可以采用该编码形式并将其放入我的python程序中,并返回原始密码。 这有多安全? 在编码密码后,无论出于何种原因,这都 ...

4 有没有一种方法可以将JSON对象中的数据作为整数而不是字符串进行传递?

我正在为GM桌面组创建一个小型Web应用程序,遇到了一些困难。 我有一个JSON文件,将数据传递到我的EJS模板中,但是在同一对象中有两个值,当它们显示在页面上时需要合并。 我希望在网页上显示时将其显示为“ 5”,但我似乎找不到一种方法来传递两个值,然后将它们加在一起。 如果有人 ...

9 有没有一种方法可以使用Python从JSON文件中删除某些字符串?

我想用另一个字符串替换JSON文件中的字符串。 给定的所有解决方案都使用json.load()对JSON文件执行任何必要的操作。 但是尝试了很多之后,我找不到替换字符串的方法。 我试图用open()和replace()用Python读取文件的通常方式来读取它,但是不适用于JSON文件。 这是JSO ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM