我使用以下代码将字典写入csv文件。
with open('dict.csv', 'w') as csv_file:
writer = csv.writer(csv_file)
for key, value in dict.items():
writer.writerow([key, value])
在“ dict.csv”文件中:
符合[16、32、49]
根据[8,37,49,50]
相应地[8,37,50]
帐户[8,10,16,19,20,23,25,33,34,47]
其中,根据,因此和说明分别是键和[16、32、49],[8、37、49、50],[8、37、50],[8、10、16、19, 20、23、25、33、34、47]分别是theri值。
示例:
dict = {'accord':[16,32,49]}
现在,我想把它读回字典。怎么做?
with open('dict.csv','r') as csv_file:
reader = csv.reader(csv_file)
dict ={rows[0]:rows[1] for rows in reader}
我尝试使用此代码,但出现索引错误。
IndexError:列表索引超出范围。
然后使用下面的代码给我这个错误。
UnicodeDecodeError:“ utf-8”编解码器无法解码位置5:无效的起始字节中的字节0x97。
dict={}
csv_file=pd.read_csv('dict.csv')
for index, row in csv_file.iterrows():
dict[row[0]]= row[[1]].tolist()
答案 0 :(得分:0)
您基本上创建了自定义的csv格式。您可以使用字符串操作重新读取输入内容:
with open('dict.csv', 'w', newline="") as csv_file:
csv_file.write("""accord [16, 32, 49]
according [8, 37, 49, 50]
accordingly [8, 37, 50]
account [8, 10, 16, 19, 20, 23, 25, 33, 34, 47]""")
data = {}
with open('dict.csv', 'r') as csv_file:
for line in csv_file:
key, *values = line.replace("[","").replace("]","").replace(",","").split()
try:
data[key] = list(map(int,values)) # try to convert to int list
except ValueError:
data[key] = values # else use string list
print(data)
输出:
{'accord': [16, 32, 49],
'according': [8, 37, 49, 50],
'accordingly': [8, 37, 50],
'account': [8, 10, 16, 19, 20, 23, 25, 33, 34, 47]}