0
TDB = csv.reader(codecs.open('data/TDS.csv', 'rb', encoding='utf-8'), delimiter=',', quotechar='"')

ts = db.testCol

for row in TDB:
    print row[1]
    T = {"t":row[1],
             "s": row[0]}
    post_id = ts.insert(T)

データベースにデータを挿入したいのに、utf-8 にエンコードできない理由がわかりません。utf8 形式にする必要があります。

UnicodeDecodeError: 'utf8' codec can't decode byte 0xf3 in position 36: invalid continuation byte

エンコーディング関数を配置する前に、これを pymongo から入手しました。

bson.errors.InvalidStringData: strings in documents must be valid UTF-8

これはエンコードできなかったデータだと思います

'compleja e intelectualmente retadora , el ladrÛn de orquÌdeas es uno de esos filmes que vale la pena ver precisamente por su originalidad . '

誰が私がどうすればよいか知っていますか? ありがとう

4

1 に答える 1

1

わかりました、これは役立つかもしれません..

ここにエンコーディングのリストがあります:

http://docs.python.org/2/library/codecs.html#standard-encodings

latin-1ヨーロッパの言語に使用される一般的なエンコーディングです。

エンコーディングを扱う基本的な流れは次のとおりです。

  1. エンコードされたコンテンツを読み取る
  2. content.decode("source encoding") から unicode へ
  3. Unicode から目的のエンコーディングにエンコードする unicode_content.encode("desired encoding")

正しいと思われるエンコーディングを試してみて、どのエンコーディングがエラーを引き起こさないかを確認できます。

enc = "latin-1"
f = open("TSD.csv", "r")
content = f.read() # raw encoded content
u_content = content.decode(enc) # decodes from enc to unicode
utf8_content = u_content.encode("utf8")
于 2013-02-21T22:52:09.747 に答える