2017-11-03 7 views
0

pyratemp 모듈을 사용하여 파일에서 템플릿을 바꾸려고합니다. 일반 ascii 및 UTF-8 형식 파일에서 제대로 작동합니다. 하지만, 내 파일 형식은 다음과 같습니다. "CRLF 줄 종결자를 사용하는 UTF-8 유니 코드 C 프로그램 텍스트"'ascii'코덱이 u ' u503c'문자를 인코딩 할 수 없습니다.

바꿀 SQL에 몇 가지 변수가 있습니다. 그래서, 나는 pyratemp 모듈을 사용하여 다음과 같이 처리 할 것입니다.

import pyratemp 
data_hash = {} 
data_hash['tab_name'] = 'svm_table' 
sourceFile = "sample.sql" 
temp_sql = pyratemp.Template(filename=sourceFile, data=data_hash, encoding='utf-8') 

스크립트를 실행 :

python template_proc.py 

Traceback (most recent call last): File "template_proc.py", line 11, in print temp_sql UnicodeEncodeError: 'ascii' codec can't encode character u'\u503c' in position 196: ordinal not in range(128)

어떤-하나가 나에게 그것을 할 수있는 솔루션을 제안 할 수 있습니다.

+0

어떤 환경에서 스크립트를 실행합니까 유니 코드 문자를 읽는 방법에 대한 자세한 내용은 Python HowTo을 볼 수 있습니다 시도 제안합니다 ...? – MaximTitarenko

+0

명령 줄을 통해 실행 중입니다. 수세 출시 11 리눅스 에이전트. – user3655447

+0

여기를보십시오 https://stackoverflow.com/questions/34010559/unicodeencodeerror-ascii-codec-cant-encode-character-u-xfa-in-position-42 – tiennes

답변

1

나는 당신이 Python2를 사용하고 있다고 가정한다. , cmd를, 텍스트 편집기 - Python2 어려운 유니 코드 문자를 읽고, 난 당신이 ... temp_sql = pyratemp.Template(filename=sourceFile, data=data_hash, encoding='utf-8') encoded_temp_sql=temp_sql.encode('utf-8', errors='ignore')

당신은 Python2이