读取csv文件,因为列表错误-python而无法拆分值

时间:2015-11-19 23:39:33

标签: python csv

我在阅读文件。是各种各样的书的信息,非常大。我只需要ISBN和书名。

用分号分隔后,ISBN和书名用逗号分隔。我认为我所要做的就是用col-col分隔,然后用逗号分隔,然后得到第一项[0]返回ISBN,然后得到第二项[1]返回标题。

收到错误消息“”列表对象没有属性拆分“。我对此感到困惑,似乎python将变量split_col解释为列表,但我从未将其定义为一个。

甚至更奇怪,当我运行文件时,即使它在for循环中,它只返回文件中的一行信息。它不是文件的第一行,它作为列表返回。

该文件看起来像这样: 0195153448;古典神话; Mark P. O. Morford; 2002;牛津大学出版社; http://images.amazon.com/images/P/0195153448.01.THUMBZZZ.jpg;http://images.amazon.com/images/P/0195153448.01.MZZZZZZZ.jpg;http://images.amazon.com/images/P/0195153448.01.LZZZZZZZ.jpg ,,,,,,,,,,,,,,,,,,,,,

我需要的只是前两个项目,即ISBN和标题。

这里发生了什么? 所有的打印陈述都是我在那里测试发生了什么,但由于我得到的错误,我甚至看不到这些值。我刚开始阅读这个文件。最后,我需要使用此文件中的数据和另一个文件中的数据来制作字典。但是现在我只想弄清楚这个读代码出了什么问题。

busers = {}
books = []
infile3 = open("BBooks.csv","r")
for line in infile3:
    split_col = line.split(";")
    split_comma = split_col.split(",")
    ISBN = split_comma[0]
    title = split_comma[1]
print(split_col)
print(split_comma)
print(ISBN)
print(title)

新代码。问题是,它仍然只是从非常大的文件中打印一个项目,它不是第一个项目。然而,它使用此表格打印ISBN和这本特定书籍的标题。

busers = {}
books = []
infile3 = open("BBooks.csv","r")
for line in infile3:
    split_col = line.split(";")
    ISBN = split_col[0]
    title = split_col[1]

print(ISBN)
print(title)

1 个答案:

答案 0 :(得分:2)

如果您希望打印出所有ISBN和标题,则需要将print语句放入for循环中。它只打印一本书,因为在for循环退出后你有print语句。它正在您的文件中打印最后一本书。

最终声明向您展示如何将ISBN和标题存储在b'{"status":500,"message":"Internal Server Error","more_info":"undefined method`string\' for #\\u003cPhusionPassenger::Utils::TeeInput:0x007f83edc7eac0\\u003e"}' 字典中,其中ISBN为键,标题为值。

busers