2024-10-01 02:32:23 发布
网友
在像这样的文件中:
jaslkfdj,asldkfj,,, slakj,aklsjf,,, lsak,sajf,,,
你们怎么能把它拆分成只有两个单词的键值对呢?我试着用逗号分割,但我知道如何生成键/值对的唯一方法是当一行中只有一个逗号时。在
python给出了一个错误:“ValueError:太多的值无法解包(预期为2)”,因为每行末尾多了3个逗号
这就是我所拥有的:
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'}
尝试对前两个值进行切片:
"a,b,,,,,".split(",")[:2]
很好地总结了this answer中的切片表示法。在
似乎你更可能尝试的是:
>>> line = 'jaslkfdj,asldkfj,,,' >>> key, value = line.split(',') ValueError: too many values to unpack (expected 2)
有两种方法可以解决这个问题。在
首先,可以拆分,然后只取前两个值:
或者可以使用maxsplit参数:
maxsplit
>>> line = 'jaslkfdj,asldkfj,,,' >>> key, value = line.split(',', 1)
第二个命令将在value的末尾留下额外的逗号,但这很容易修复:
value
结果如下:
{' jaslkfdj': 'asldkfj', ' lsak': 'sajf', ' slakj': 'aklsjf'}
尝试对前两个值进行切片:
很好地总结了this answer中的切片表示法。在
似乎你更可能尝试的是:
有两种方法可以解决这个问题。在
首先,可以拆分,然后只取前两个值:
^{pr2}$或者可以使用
maxsplit
参数:第二个命令将在
^{4}$value
的末尾留下额外的逗号,但这很容易修复:相关问题 更多 >
编程相关推荐