python - 如何将没有双引号元素的列表的字符串表示形式转换为实际列表?

标签 python string

我引用了很多来源,但大多数使用 json.loads()ast.literal_eval()这不适用于我的情况:

x = '[(0.0, 58.099669), 56565, Raining]'
预期输出:
x = [(0.0, 58.099669), 56565, 'Raining']
有什么解决方法吗?

最佳答案

那这个呢:

class default_key(dict):
    def __missing__(self, key):
        return key

d = default_key()
x = '[(0.0, 58.099669), 56565, Raining]'

res = eval(x, d, {})
# res = [(0.0, 58.099669), 56565, 'Raining']
说明:eval通常使用 globals()locals()字典。但是,如果您不提供 locals()并替换 globals()使用 dict 在完成查找时返回键的名称(并且未找到键),那么当 eval 时,给定列表中的每个“变量”名称都将转换为字符串叫做。
然而,这仍然可能是不安全的。见 this .

关于python - 如何将没有双引号元素的列表的字符串表示形式转换为实际列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65260788/

相关文章:

python - [ Pandas ] : how to figure out what's inside a column

python - 在Python中使用 'requests'模块发出POST请求

在 C 中创建多个随机字符串

复制字符数有限的字符串

python - 查找子序列(非连续的)

Javascript:正则表达式替换两个字符及其周围的所有空格

python - numpy - 二维数组索引

python - 省时的宽到长转换 Pandas

python - 在地下的pygame blit中导致地下被锁定的错误

python - 使用列表的所有元素格式化字符串