3 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
只需添加上述答案:
利用:
ast.literal_eval()
但是從字典的鍵中刪除/替換“\”,因?yàn)樗梢栽?literal_eval() 函數(shù)中創(chuàng)建 unicode 錯(cuò)誤
代碼中的另一個(gè)錯(cuò)誤,在轉(zhuǎn)換為字典后,你不能做 d[0] 因?yàn)樽值錄](méi)有索引

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
您從文件中獲得的行是string. 如果要將它們轉(zhuǎn)換為dict或list對(duì)象,可以使用literal_eval:
from ast import literal_eval
...
d = literal_eval(lines[i+1])
...
l = literal_eval(lines[i+1])
如果您可以更改輸入文件的格式,我會(huì)考慮將其修改為json文件,以便使用json 模塊方便地存儲(chǔ)和加載您的對(duì)象。

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
該函數(shù)readlines
執(zhí)行它所說(shuō)的:它讀取 lines。你我都可以認(rèn)識(shí)到這兩行是 Python 字典和 Python 列表,但 Python 不能也不應(yīng)該。
在我看來(lái),您正在從一個(gè)包含 Python 源代碼的文件中讀取配置設(shè)置。一種更標(biāo)準(zhǔn)的方法是使用.ini
文件。看看模塊configparser
。
添加回答
舉報(bào)