PythonコードでStormというアクティブレコードを使用し て、MySQLデータベース上のいくつかのレコードを取得しています。
問題は次のとおりです。テーブルは「utf8_unicode_ci」にありますが、オブジェクトを取得すると「latin-1」属性を取得するため、object.attr.decode('latin-1')。encode('utf- 8')常に機能しているわけではありません-いくつかの例外をスローします。
私の質問:これはPythonの動作ですか?MySQLの動作?嵐に関連する何か?
コード:
Storm.conn(user=db_user,db=db_name, passwd=db_passwd)
events = Event.select('*',status='=2',date_end='>=NOW()')
for event in events:
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
try:
#here we need only utf-8 strings
conn.index({"title": event.get_title(), "local": event.get_local(), "url": event.getUrl(), "description": event.get_description(), "artists": event.get_artists(), "tags": event.get_tags(), "picture": event.get_Picture(), "type": event.get_type(), 'date_begin': event.get_date_begin(), 'date_end': event.get_date_end(), '_ttl': event.get_ttl()}, "wf", "event", event.id)
print 'Indexed - '+now+': '+str(event.id)
except Exception,error:
print 'Error - '+now+': '+str(event.id)+" - "+str(error)