![](/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.