5 回答

TA貢獻(xiàn)1786條經(jīng)驗 獲得超11個贊
您不能只轉(zhuǎn)儲字典,因為就該write方法而言,您正在嘗試轉(zhuǎn)儲內(nèi)存位置。
您需要像這樣檢查每個字典鍵和項目。您也不需要關(guān)閉文件,因為當(dāng)您離開循環(huán)時,with open它會自行關(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)
注意: 我還沒有測試過這些。

TA貢獻(xiàn)1735條經(jīng)驗 獲得超5個贊
首先使用分隔符分割原始文件數(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)驗 獲得超11個贊
根據(jù)您的調(diào)試錯誤,您應(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)驗 獲得超7個贊
在你的 write 語句中,你可以簡單地這樣做:
f.write('\n'.join(car + ''.join(cars[car]) for car in cars))

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