【发布时间】:2018-08-01 22:38:23
【问题描述】:
以下是文本文件内容,文本数据没有标题或引号。我如何在字典中解析这些。我文件中的每条记录都在一个新行下面是我的文本文件内容:
B00308CJ12 Bulletproof Salesman (2008)
189138922X Classical Mechanics
B0000CEP9J Fiesta Black 464 7-1/4-inch Salad Plate
B000HRH6IA Baby Blue Aurora Blue Gem Butterfly Belly Ring
B000002ERY Predicciones Leo
使用下面的代码会给我一个错误。我假设那是因为我的句子不在引号中。我该怎么做才能纠正这些值并将这些值放入字典中
f = open('file_path', 'r')
answer = {}
for line in f:
k, v = line.strip().split(' ')
answer[k.strip()] = v.strip()
f.close()
错误:
k, v = line.strip().split(' ')
ValueError:解包的值太多(预计 2 个)
修改代码后编辑
f = open('file_path', encoding="utf8")
answer = {}
for line in f:
k, v = line.strip().split(' ')[0],line.strip().split(' ')[1:]
answer[k] = v
f.close()
错误:
文件“C:\ProgramData\Anaconda3\lib\codecs.py”,第 321 行,在解码中 (结果,消耗) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' 编解码器无法在位置解码字节 0xae 1266: 无效的起始字节
【问题讨论】:
-
你打算得到
{'B00308CJ12':'Bulletproof Salesman (2008)',...}吗?即,左边的每个键都是右边的完整字符串? -
是的,但我的代码给了我这样的东西 {'B00308CJ12':['Bulletproof', 'Salesman', '(2008)']}... 这似乎是问题所在跨度>
标签: python-3.x dictionary text