나는 파일에 쓰기 위해 노력하고있어 나는 다음과 같은 오류 얻을 :unicodeError를 피하는 방법은 무엇입니까?
나는 그들의 이름을 집계 된 파일에 대한 상담의 데이터베이스에서 행을 작성하려고 후 오류가 발생Traceback (most recent call last):
File "/private/var/folders/jv/9_sy0bn10mbdft1bk9t14qz40000gn/T/Cleanup At Startup/merge-395780681.888.py", line 151, in <module>
gc_all_d.writerow(row)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/csv.py", line 148, in writerow
return self.writer.writerow(self._dict_to_list(rowdict))
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0329' in position 5: ordinal not in range(128)
:
를# compile master spreadsheet
with(open('gc_all.txt_3','w')) as gc_all:
gc_all_d = csv.DictWriter(gc_all, fieldnames = fieldnames, extrasaction='ignore', delimiter = '\t')
gc_all_d.writeheader()
for row in aicep_l:
print row['name']
gc_all_d.writerow(row)
for row in nbcc_l:
gc_all_d.writerow(row)
print row['name']
저는 여기 생소한 해역에 있습니다. writerow() 메서드에서이 문자 '\ u0329'로 인코딩 범위를 넓힐 수있는 매개 변수가 표시되지 않습니다.
나는이 오류가 nameparser 모듈을 사용하여 모든 상담원의 이름을 같은 형식으로 구성한다는 사실과 관련이 있다고 생각합니다. nameparser에서 가져온 HumanName 함수는 유니 코드를 나타 내기 위해 선도자 'u'와 함께 상담원의 이름을 쓸 수 있습니다. 즉 'Sam the Man'대신 'Man the Man'출력이 인식되지 않습니다.
도움 주셔서 감사합니다. 답변에 따라
ERROR 다음과 같은 수정 :
# nbcc
with(open('/Users/samuelfinegold/Documents/noodle/gc/nbcc/nbcc_output.txt', 'rU')) as nbcc:
nbcc_d = csv.DictReader(nbcc, delimiter = '\t')
nbcc_l = []
for row in nbcc_d:
# name = HumanName(row['name'])
# row['name'] = name.title + ' ' + name.first + ' ' + name.middle + ' ' + name.last + ' ' + name.suffix
row['phone'] = row['phone'].translate(None, whitespace + punctuation)
nbcc_l.append(row)
개정 코드 :
# compile master spreadsheet
with(open('gc_all.txt_3','w')) as gc_all:
gc_all_d = csv.DictWriter(gc_all, fieldnames = fieldnames, extrasaction='ignore', delimiter = '\t')
gc_all_d.writeheader()
for row in nbcc_l:
row['name'] = row['name'].encode('utf-8')
gc_all_d.writerow(row)
,536,913
File "/private/var/folders/jv/9_sy0bn10mbdft1bk9t14qz40000gn/T/Cleanup At Startup/merge-395782963.700.py", line 153, in <module>
row['name'] = row['name'].encode('utf-8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 11: ordinal not in range(128)
코드 만드는 이름의 모든 균일 엔트리 63,210
오류 : docs에서
Traceback (most recent call last):
File "/private/var/folders/jv/9_sy0bn10mbdft1bk9t14qz40000gn/T/Cleanup At Startup/merge-395784700.086.py", line 153, in <module>
row['name'] = row['name'].encode('utf-8')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 11: ordinal not in range(128)
logout
가능한 [파이썬에서 영어 및 힌디어 문자로 구문 분석 csv 파일] (http://stackoverflow.com/questions/17661093/parsing-csv-file-with-english-and-hindi-characters-in-python) – abarnert
아마도 여기와 목표물에 관련된 질문의 절반도 될 것입니다. – abarnert