python - 如何从字符串内部安全地获取字节文字
问题描述
作为对自己的挑战,我想看看如何安全地从常规字符串中提取字节文字。但是,我无法安全地提取字节文字。
示例字符串:
'b"\\xfeq\\xed\\xad7E\'\\x9a\\xb4_ p\\xdf\\x98\\tC\\xcb\\xe7\\xaa\\x80`\\x93\\x1a\\xf5?\\x03j\\xa4\\x93vT\\xd9"'
目标:
b"\xfeq\xed\xad7E'\x9a\xb4_ p\xdf\x98\tC\xcb\xe7\xaa\x80`\x93\x1a\xf5?\x03j\xa4\x93vT\xd9"
解决方案
在花了一些时间浏览文档之后,这是我能想到的最佳解决方案。ast.literal_eval
是评估来自不受信任来源的文字表达式的最佳方法。except
为了适应任何可能的错误,该条款被有意保留宽泛。
import ast
def extract_binary_literal(input: str):
try:
result = ast.literal_eval(input)
if type(result) == bytes:
return result
except Exception:
pass
return None
推荐阅读
- java-8 - CMS 类卸载花费了很多时间
- c# - 使用 C# 播放视频中的特定帧
- qml - 我可以将模型列作为属性传递吗
- python - 从 Flask 中的登录表单安全地发送密码
- sql - SQL Server 中缺少表时错误的严重级别是多少?如何在 catch 块中捕获错误并返回严重性?
- angular - 如何根据Angular 6同一行中的其他单元格值在AG-Grid选择下拉列表中加载不同的选项?
- amazon-web-services - 如何将私有现有域迁移到 AWS EC2?
- google-apps-script - 从电子邮件中检索云端硬盘文档的链接
- c# - 分配前的冗余比较和“如果”
- python - 同时运行多个 python 文件并在一个完成后全部终止