현재 독일어 문자 - 움라우트를 무시하는 내 postgresql 데이터베이스에서 쿼리를 실행 중입니다. 그러나 나는 이러한 문자들을 풀고 싶지 않고, 쿼리 결과에 독일어 문자 또는 그와 동등한 문자 (예 : ä = ae)를 사용하려고합니다.ascii 문자로 유니 코드 데이터베이스를 쿼리하는 방법
psycopg2.ProgrammingError: syntax error at or near "?"
LINE 1: ?SELECT
코드 조각 :
# -*- coding: utf-8 -*-
connection_str = r'postgresql://' + user + ':' + password + '@' + host + '/' + database
def query_db(conn, sql):
with conn.cursor() as curs:
curs.execute(sql)
rows = curs.fetchall()
print("fetched %s rows from db" % len(rows))
return rows
with psycopg2.connect(connection_str) as conn:
for filename in files:
# Read SQL
sql = u""
f = codecs.open(os.path.join(SQL_LOC, filename), "r", "utf-8")
for line in f:
sql += line.encode('ascii', 'replace').replace('\r\n', ' ')
rows = query_db(conn, f)
어떻게이 같은 쿼리를 전달할 수 있습니다 내가 replace
또는 xmlcharrefreplace
나는 다음과 같은 오류로 인 코드 개체를 변경하면 파이썬 2.7.12
실행 독일어 문자가있는 유니 코드 객체입니까? 나는 또한 시도 는 utf-8
으로 쿼리를 디코딩하지만 나는 다음과 같은 오류가 발생합니다 :
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 20: ordinal not in range(128)
저는이 용어로 약간 혼란 스럽습니다. 용어 문제로 생각됩니다. "ASCII 문자"라고 할 때 실제로 "ASCII 문자가 맞지 않는 문자"를 의미합니까? [ASCII] (https://en.wikipedia.org/wiki/ASCII)는 영어 (악센트 또는 움라우트 없음)가 사용하는 로마자 알파벳 부분만을 다루는 7 비트 인코딩입니다. 네가 거꾸로 원하는 것에 대해 말하는 것처럼 들린다. – Blckknght