5 回答

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
您不能只轉(zhuǎn)儲(chǔ)字典,因?yàn)榫驮搘rite方法而言,您正在嘗試轉(zhuǎn)儲(chǔ)內(nèi)存位置。
您需要像這樣檢查每個(gè)字典鍵和項(xiàng)目。您也不需要關(guān)閉文件,因?yàn)楫?dāng)您離開循環(huán)時(shí),with open它會(huì)自行關(guān)閉。
with open('cars.txt', 'w') as f:
for car, vals in cars.items:
f.write(car)
for val in values:
f.write(val)
注意: 我還沒有測(cè)試過這些。

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
首先使用分隔符分割原始文件數(shù)據(jù)'\n\n'。然后使用字典訪問新數(shù)據(jù)。然后將結(jié)果寫入新文件。
with open('cars.txt') as fp, open('new_cars.txt', 'w') as fw:
for car in fp.read().split('\n\n'):
car_name = car.split('\n', 1)[0] + '\n'
fw.write(car_name + ''.join(cars[car_name]) + '\n')

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
根據(jù)您的調(diào)試錯(cuò)誤,您應(yīng)該只將dict轉(zhuǎn)換為str像這樣
with open('cars.txt', 'w') as f:
f.write(str(cars))
f.close()

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
在你的 write 語句中,你可以簡(jiǎn)單地這樣做:
f.write('\n'.join(car + ''.join(cars[car]) for car in cars))

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
這里有多個(gè)問題:
該錯(cuò)誤的意思就是它所說的——你不能將 a 寫入
dict
文件。要解決這個(gè)問題,只需將 轉(zhuǎn)換
dict
為 astr
,如下所示:dict_as_str = str(dict)
,然后f.write(dict_as_str)
一旦你解決了這個(gè)問題,看看你擁有什么:你可能不會(huì)看到你想要的。這是因?yàn)橐?code>f.write相同的方式轉(zhuǎn)換它
print
,所以如果你運(yùn)行print(dict_as_str)
,它基本上看起來像一個(gè)字典。要解決這個(gè)問題,您必須執(zhí)行不止一行代碼。我不會(huì)給你代碼,你需要自己嘗試弄清楚。如果您嘗試但無法使其正常工作,那么您可以發(fā)布另一個(gè)問題。
添加回答
舉報(bào)