Python safe eval string to boolintfloatNonestring

2024-05-14 05:39:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个webapp来进行一些数据处理,因此我经常发现自己正在将字符串(从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操作系统,但我想知道是否没有一种快速而简单的方法(比如我不知道的库函数,或者聪明的一行程序?)。


Tags: 方法函数字符串urlstringreturnevalwebapp
1条回答
网友
1楼 · 发布于 2024-05-14 05:39:23

^{}

>>> 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')}

相关问题 更多 >