我引用了很多来源,但大多数使用 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/