在像:
这样的文件中 jaslkfdj,asldkfj,,,
slakj,aklsjf,,,
lsak,sajf,,,
你怎么能把它分开,所以这两个词只有一对键值对?我试图用逗号分割,但我知道如何制作键/值对的唯一方法是在一行中只有一个commma。
python给出错误:“ValueError:解压缩的值太多(预期为2)”,因为每行末尾有3个额外的逗号
这就是我所拥有的:
newdict= {}
wd = open('file.csv', 'r')
for line in wd:
key,val = line.split(',')
newdict[key]=val
print(newdict)
答案 0 :(得分:2)
答案 1 :(得分:2)
您尝试的内容似乎更有可能是:
>>> line = 'jaslkfdj,asldkfj,,,'
>>> key, value = line.split(',')
ValueError: too many values to unpack (expected 2)
有两种解决方法。
首先,您可以拆分,然后只取前两个值:
>>> line = 'jaslkfdj,asldkfj,,,'
>>> parts = line.split(',')
>>> key, value = parts[:2]
或者您可以使用maxsplit
参数:
>>> line = 'jaslkfdj,asldkfj,,,'
>>> key, value = line.split(',', 1)
第二个会在value
的末尾留下额外的逗号,但这很容易解决:
>>> value = value.rstrip(',')
答案 2 :(得分:0)
with open('file.csv', 'r') as wd:
newdict = dict(line.split(",")[:2] for line in wd.read().splitlines())
print newdict
结果如下:
{' jaslkfdj': 'asldkfj', ' lsak': 'sajf', ' slakj': 'aklsjf'}