Python 从文本文件填充词典

Python 从文本文件填充词典,python,dictionary,file-handling,Python,Dictionary,File Handling,我试图从一个文本文件中填充一个字典,该文件有两列作者和标题,两列之间用逗号分隔。我的代码在下面 f = open('books.txt', 'r') books = {} for l in f: author,title = l.strip().split() if author in books: books[author].append(title) else: books[author]=[title] f.clo

我试图从一个文本文件中填充一个字典,该文件有两列作者和标题,两列之间用逗号分隔。我的代码在下面

f = open('books.txt', 'r')          
books = {}
for l in f:
    author,title = l.strip().split()
    if author in books:
        books[author].append(title)
    else:
        books[author]=[title]
f.close()

我在第1行得到错误“太多的变量需要解包”。有什么建议吗?谢谢

有几件事,您可能应该使用
和open
的方式来读取python中的文件(请参阅)。它会在块的末尾自动关闭

其次,在空字符串上拆分。它应该是
.split(',)
以逗号分隔

最后,我会考虑使用这个来读取CSV文件。如果书名或作者中有逗号,这尤其有用

代码的工作示例:


有几件事,您可能应该使用带有open的
方式来读取python中的文件(请参阅)。它会在块的末尾自动关闭

其次,在空字符串上拆分。它应该是
.split(',)
以逗号分隔

最后,我会考虑使用这个来读取CSV文件。如果书名或作者中有逗号,这尤其有用

代码的工作示例:


我不确定您的行数,但有问题的行应该是
作者,title=l.strip().split()
,因为当赋值两边的变量数不相等时,会引发“太多变量无法解包”。这是正确的,错误是由空字符串上的拆分引起的。等等,你怎么可能在第1行出错?您的意思是回溯会导致您找到
f=open('books.txt','r')
?抱歉,错误在第4行,是.split()中缺少的逗号。谢谢你的帮助!切换到在文件中使用JSON,然后使用JSON library books=JSON.load(file_desc)加载字典我不确定行数,但有问题的行应该是
author,title=l.strip().split()
,因为“变量太多,无法解包”当赋值两边的变量数不相等时引发。这是正确的,并且该错误是由在空字符串上拆分引起的。等等,怎么可能在第1行出现错误?您的意思是回溯会导致您找到
f=open('books.txt','r')
?抱歉,错误在第4行,是.split()中缺少的逗号。谢谢你的帮助!切换到在文件中使用JSON,然后使用JSON library books=JSON.load(file_desc)加载字典
with open('books.txt', 'r') as book_file:
    books = {}
    for l in book_file:  
        author,title = l.strip().split(',')
        if author in books:
            books[author].append(title)
        else:
            books[author]=[title]

print books