【问题标题】:Converting python string into bytes directly without eval()直接将python字符串转换为字节而不使用eval()
【发布时间】:2018-08-09 20:15:37
【问题描述】:

eval() 在处理未知字符串时似乎很危险,这是我项目的一部分正在做的事情。

对于我的项目,我有一个字符串,名为:

stringAsByte = "b'a'"

我尝试执行以下操作来直接转换该字符串(不使用 eval):

byteRepresentation = str.encode(stringAsByte)
print(byteRepresentation) # prints b"b'a'"

显然,这不起作用,所以不要这样做:

byteRepresentation = eval(stringAsByte) # Uses eval!

print(byteRepresentation) # prints b'a'

还有其他方法可以得到输出 b'a' 吗?

【问题讨论】:

    标签: python python-3.x byte eval


    【解决方案1】:

    是的,ast.literal_eval 是安全的,因为它只计算 literals

    >>> import ast
    >>> stringAsByte = "b'a'"
    >>> ast.literal_eval(stringAsByte)
    b'a'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-01
      • 2021-12-16
      • 2015-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      相关资源
      最近更新 更多