首页 > 解决方案 > 如何从字符串内部安全地获取字节文字

问题描述

作为对自己的挑战,我想看看如何安全地从常规字符串中提取字节文字。但是,我无法安全地提取字节文字。

示例字符串:

'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"

标签: pythonstringbyte

解决方案


在花了一些时间浏览文档之后,这是我能想到的最佳解决方案。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


推荐阅读