我需要从.cfg
文件中读取一些字符串,这是.cfg
格式:
rangeList1 = [50,60],[100,200],[300]
rangeError = [100],[t],[50,100]
我想将其转换为列表列表安全所以我使用:
list(ast.literal_eval(limitList))
结果为[[50, 60], [100, 200], [300]]
,类型为List
我理解eval()
不安全,因为输入字符串可能导致安全漏洞。
ast.literal_eval()
docs说:
安全地评估表达式节点.....
问题:
由于这是一个我想确定的关键问题,literal_eval()
方法是否100%安全使用?
如果没有,您能否建议另一种方法将一串嵌套列表转换为列表?
答案 0 :(得分:1)
我建议你最好先谈谈使用ConfigParser进行解析。
答案 1 :(得分:0)
你可以用这种风格重写它:
文件:
{
"rangeList1": [[50,60],[100,200],[300]],
"rangeError": [[100],["t"],[50,100]]
}
脚本:
import json
with open("file", "r") as f:
settings = json.load(f)