无法解析简单的CSV文件?

时间:2016-02-02 12:19:15

标签: ruby-on-rails csv

我正在尝试导入此行:

"1","K&M Möbel AG: Erstes Quartal: Plus 9%","Die K&M Möbel AG, Kirchlengern steigerte ihren Umsatz im ersten Quartal um über 9% auf 68,1 Mio. Euro (1999: 62,3 Mio. Euro). Als Grund für die überdurchschnittlich gute Entwicklung nannte der Vorstandsvorsitzende Volker Meurer das positive Geschäft mit den fünf wichtigsten Einkaufsverbänden, das um ein Drittel anstieg. Die Platzierung neuer Möbelserien legte im gleichen Zeitraum ? ebenso wie der Auftragseingang ? um 13% zu. 


使用这些行:

csv_file = File.open(File.join(Rails.root, 'db', 'seeds', 'news.csv'))
csv = CSV.parse(csv_file.read)

告诉我这个错误:

CSV::MalformedCSVError: Missing or stray quote in line 1

我经历了这一行一百次并且找不到问题。有什么想法吗?

---更新---

我正在使用此查询来执行

SELECT
    *
FROM
    news
INTO OUTFILE '/Users/pbartels/Sites/moebel_fertigung/db/seeds/news.csv'
CHARACTER SET utf8
FIELDS ENCLOSED BY '"'
TERMINATED BY ','
ESCAPED BY '\"'
LINES TERMINATED BY '\\n'

3 个答案:

答案 0 :(得分:1)

你需要告诉它你正在使用的分隔符(因为你没有使用逗号)。

> CSV.parse(s, {:col_sep => ';'})
=> [["1", "K&M Möbel AG: Erstes Quartal: Plus 9%", "Die K&M Möbel AG, Kirchlengern steigerte ihren Umsatz im ersten Quartal um über 9% auf 68,1 Mio. Euro (1999: 62,3 Mio. Euro). Als Grund für die überdurchschnittlich gute Entwicklung nannte der Vorstandsvorsitzende Volker Meurer das positive Geschäft mit den fünf wichtigsten Einkaufsverbänden, das um ein Drittel anstieg. Die Platzierung neuer Möbelserien legte im gleichen Zeitraum ? ebenso wie der Auftragseingang ? um 13% zu. "]]

答案 1 :(得分:0)

您需要删除引号然后检查。它会对你有用。

1; K&MMöbelAG:Erstes Quartal:加9%; Die K&MMöbelAG,Kirchlengern steigerte ihren Umsatz im ersten Quartalumüber9%auf 68,1 Mio.欧元(1999年:62,300万欧元)。 AlsGrundfürdieüberdurchschnittlichguteEntwicklung nannte der Vorstandsvorsitzende Volker Meurer daspositiveGeschäftmitdenfünfwichtigstenEinkaufsverbänden,das um ein Drittel anstieg。 Die PlatzierungneuerMöbelserienlegte im gleichen Zeitraum? ebenso wie der Auftragseingang?嗯13%zu。

答案 2 :(得分:0)

有一个"在行尾缺少