2014-12-04 6 views
0

여러분,SQLAlchemy ORM 쿼리 인코딩

다음과 같이 조언 할 수 있습니까? 키릴 문자 형식의 값을 표시하려고합니다. 다음은

내 쿼리

db.session.query(items.item_name).join(item_ship, item_ship.item_id == items.id).join(house_shipment, house_shipment.id == item_ship.shipment_id).first(); 

결과입니다 : (유 '\ u041c \ u0443 \ u0436 \ u0441 \ u043a \ u0430 \ u044f \ u043e \ u0431 \ u0443 \ u0432 \ u044c')

테이블 항목의 기본 데이터 정렬이 utf8_general_ci이고 연결 문자열이 다음과 같습니다.

mysql://root:[email protected]/test?charset=utf8 

도와주세요.

감사합니다,

+0

나에게 키릴과 같다 :'지도 (unicodedata.name, U '\ u041c \ u0443 \ u0436 \ u0441 \ u043a \ u0430 \ u044f') 아웃 [4] : [ 'CYRILLIC 대문자 EM', 'CYRILLIC SMALL LETTER U' 'CYRILLIC 소문자 ZHE' 'CYRILLIC SMALL LETTER ES' 'CYRILLIC SMALL LETTER KA' 'CYRILLIC SMALL LETTER A', 'CYRILLIC SMALL LETTER YA'] ' – SingleNegationElimination

답변

0

인코딩이 옳다 :

>>> print(u'\u041c\u0443\u0436\u0441\u043a\u0430\u044f \u043e\u0431\u0443\u0432\u044c') 
Мужская обувь 
>>> print(repr(u'Мужская обувь')) 
u'\u041c\u0443\u0436\u0441\u043a\u0430\u044f \u043e\u0431\u0443\u0432\u044c' 

당신의 가장 큰 문제는되지 첫번째 결과 행을 포함하는 문자열 만 개체를 ​​얻고있다. 그래서 당신은 객체의 repr을 얻고 있습니다. 쿼리 끝에 .first().scalar()으로 변경하십시오. Scalar은 첫 번째 행의 첫 번째 열을 반환합니다. 또 다른 변형으로 행 개체에 액세스하여 문자열 개체를 추출 할 수 있습니다.

+0

감사. 나는 그것을 알아 냈다. 나는 다음에 더 설명하기 위해 노력할 것이다. – user851094