![](/img/trans.png)
[英]Python converting dictionary to dataframe and exporting it to a csv file
[英]error in exporting a file into a dictionary in python
我有一個包含兩列和超過6000行的csv文件,並希望將其導出到python中的字典。 這是大文件的一部分:
ENST00000589805,CCCTCCCGGACTCCTCTCCCCGGCCGGCCGGCAAGAGTTTACAA
ENST00000376512,GTTGCCGAGGGGACGGGCCGGGCAGATGCCAAC
ENST00000314332,TTTAAG
我寫了這個函數:
def file_to_dict(filename):
f = open(filename, 'r')
answer = {}
for line in f:
k, v = line.strip().split(',')
answer[k.strip()] = v.strip()
return answer
我嘗試了一個小文件,並完美地工作。 但是當我嘗試對大文件進行操作時,出現了以下錯誤:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in file_to_dict
ValueError: too many values to unpack
我試圖找到解決方案,但沒有解決。 你們知道如何解決嗎? 順便說一句,字典是這樣的:
{'ENST00000589805':'CCCTCCCGGACTCCTCTCCCCGGCCGGCCGGCAAGAGTTTACAA', 'ENST00000376512': 'GTTGCCGAGGGGACGGGCCGGGCAGATGCCAAC', 'ENST00000314332': 'TTTAAG'}
最可能(但不是唯一可能)的原因是,如果輸入文件末尾有換行符。 這將以您描述的方式中斷split()
調用。 解決此問題的一種方法如下:
for line in f:
line = line.strip()
if line:
k, v = line.split(',')
answer[k.strip()] = v.strip()
輸入文件也有可能以其他方式破壞您的假設。 為了解決這個問題,您應該加強代碼中的錯誤檢查。
一行或多行中可能包含多個逗號。 因為要用逗號分隔,所以將其分解為> 2個變量,但是只指定了兩個名稱。 找到帶有多余逗號的行,然后嘗試解決該問題,或者在需要時提供一個額外的變量名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.