我有一个字符串,是这样的:"[['Cheese', 72], ['Milk', 45], ['Bread', 22]]"。
"[['Cheese', 72], ['Milk', 45], ['Bread', 22]]"
我想将其转换为列表。我知道我可以使用eval(string)来获取列表,但是eval令我感到恐惧,因为它可能会造成灾难(并且因为我可以获取非列表作为有效输出)。还有另一种更安全的方式将此字符串转换为列表吗?我知道这是一个列表,所有不是列表的数据都是无效数据(应该检查和/或抛出错误)。
如果您坚持要这样做,可以使用ast.literal_eval函数。
>>> import ast >>> foo = "[['Cheese', 72], ['Milk', 45], ['Bread', 22]]" >>> ast.literal_eval(foo) [['Cheese', 72], ['Milk', 45], ['Bread', 22]]
我确信其他人会告诉您您做错了什么,或者使用像JSON这样的库来传输像这样的任意数据结构,我不会不同意。