从文件读取到python字典
我想从一个文件中读取内容,我已将逗号分隔的值写入该文件。第一个值是图书标识号,其余的是作者和出版年份等详细信息 文件books.txt的内容如下所示从文件读取到python字典,python,dictionary,Python,Dictionary,我想从一个文件中读取内容,我已将逗号分隔的值写入该文件。第一个值是图书标识号,其余的是作者和出版年份等详细信息 文件books.txt的内容如下所示 001,C Programming,John Doe,2001,4 002,Kids story,Kier Alcock,2014,20 我想把这个ID号作为键,其余的作为它的值。 到目前为止我试过的代码 details = {} with open("books.txt") as f: for line in f: (
001,C Programming,John Doe,2001,4
002,Kids story,Kier Alcock,2014,20
我想把这个ID号作为键,其余的作为它的值。
到目前为止我试过的代码
details = {}
with open("books.txt") as f:
for line in f:
(key, val) = line.split(',')
details[int(key)] = val
print (details)
但这给了我一个错误
(key, val) = line.split(',')
ValueError: not enough values to unpack (expected 2, got 1)
你能帮我把每一行分别作为记录,把第一个值指定为键,把其余的值指定为值吗
details = {}
with open("books.txt", "r") as f:
for line in f:
values = (line.strip()).split(",")
details[int(values[0])] = values[1:]
这不起作用,因为行中有两个以上的值:
(key, val) = line.split(',')
details[int(key)] = val
安装,读取尽可能多的值:
key, *values = line.split(',')
details[int(key)] = values
或者,更好的是,要明确,比如:
key, title, author, year, something = line.split(',')
details[int(key)] = title, author, year, something
删除大括号,例如
键,val=
,但是根据CSV
数据,您需要在左侧添加5个大括号。您的文件有一个空行:没有逗号可以拆分预期的输出。现在还不清楚您试图做什么,因为即使修复了立即出现的明显错误,也会导致程序无法运行。实际上,我问题中的空行是一个错误。在文件中,记录仅用新行分隔。我真正需要的是逐行打印内容,同时将第一个值指定为键。我为我的打字错误道歉