【问题标题】:unicodecsv doesn't read unicode csv fileunicodecsv 不读取 unicode csv 文件
【发布时间】:2016-12-30 15:57:23
【问题描述】:

这是我要读的那行:

with open('u.item', 'w') as demofile:
    demofile.write(
        "543|Mis\xe9rables, Les (1995)|01-Jan-1995||"
        "http://us.imdb.com/M/title-exact?Mis%E9rables%2C%20Les%20%281995%29|
        "0|0|0|0|0|0|0|0|1|0|0|0|1|0|0|0|0|0|0\n"
    )

这就是我的阅读方式

import unicodecsv as csv
def moviesToRDF(csvFilePath):
    with open(csvFilePath, 'rU') as csvFile:
        reader = csv.reader(csvFile,  encoding='utf-8', delimiter= '|')
        for row in reader:
            print row
moviesToRDF("u.item")

这是我得到的错误:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 3: invalid continuation byte

引发错误的值是:

Misérables, Les

请问我做错了什么?

(我使用的是 2.7 python)

【问题讨论】:

  • 你确定它是 utf-8 编码的吗?
  • @Two-BitAlchemist 我不确定,请问我怎么知道?
  • 我提取了给您带来问题的一行。它没有编码为 UTF-8,而是使用的是 Latin-1 数据。
  • @MartijnPieters 我发现并写了答案:)
  • 以后,请在此处包含数据,而不是在外部下载中。 Stack Overflow 期望问题具有持久的价值;外部下载具有不同的生命周期,使您的问题对未来的访问者毫无用处。

标签: python python-2.7 unicode


【解决方案1】:

我发现了问题

文件编码为 latin-1 而不是 utf 8

这解决了问题

reader = csv.reader(csvFile,  encoding='latin-1', delimiter= '|')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 2017-12-23
    • 2018-10-26
    • 2010-11-27
    相关资源
    最近更新 更多