gpt4 book ai didi

Python "safe"eval(字符串到 bool/int/float/None/string)

转载 作者:太空狗 更新时间:2023-10-29 17:38:54 26 4
gpt4 key购买 nike

我正在制作一个执行一些数据处理的网络应用程序,因此我经常发现自己将字符串(来自 URL 或文本文件)解析为 Python 值。

我使用的函数“有点”是更安全的 eval 版本(除了如果它无法读取字符串,它仍然是一个字符串):

def str_to_value(string):
for atom in (True, False, None):
if str(atom) == string:
return atom
else:
try:
return int(string)
except ValueError:
try:
return float(string)
except ValueError:
return string

...然而,这对我来说似乎很丑陋。有更清洁的方法吗?我找到了一个 old discussion os 类似这样的东西,但我想知道是否有一种快速简单的方法(比如我不知道的库函数,或者一个聪明的单行代码?)。

最佳答案

ast.literal_eval()

>>> ast.literal_eval('{False: (1, 0x2), True: [3.14, 04, 0b101], None: ("6", u"7", r\'8\')}')
{False: (1, 2), True: [3.1400000000000001, 4, 5], None: ('6', u'7', '8')}

关于Python "safe"eval(字符串到 bool/int/float/None/string),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4388626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com