私は、MySqlデータベースに基づいてmongoコレクションを作成するためのPythonスクリプトに取り組んでいます。問題はマイクロサイン文字にあります:
bson.errors.InvalidStringData: strings in documents must be valid UTF-8: '\xb5g'
異なるコード(utf-8、latin-1、cp1252、iso-8859-2)で値をエンコード/デコードしようとしましたが、成功しませんでしたが、常に次のエラーが発生します。
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb5 in position 0: ordinal not in range(128)
これは、mysqlデータベースからデータを取得するためのコードです。データベースはUSDAのものです 0:
# -*- encoding: utf-8 -*-
import MySQLdb
mysqldb = MySQLdb.connect(DBCONF)
cursor = mysqldb.cursor()
foodid = 1001
q = (
' SELECT nut.Nutr_Val,'
' nutdef.Units,'
' nutdef.NutrDesc, nutdef.Tagname'
' FROM food_des AS f'
' JOIN nutrient AS nut ON nut.NDB_No = f.NDB_No'
' JOIN nutrient_def AS nutdef ON nutdef.Nutr_No = nut.Nutr_No'
' WHERE f.NDB_No = %s'
) % str(foodid)
self.cursor.execute(q)
マイクロサイン文字のフィールドはnutdef.Units1です。