파이썬 리스트에 들어있는 문자열의 인코딩을 모두 변경해서 문자열로 만들고 싶습니다.

파이썬 utf-8 인코딩 질문 입니다. 크롤링한 데이터 중 리스트 필드에 담은 데이터를 encode('utf-8')로 인코딩 했는데

['\xe5\xb0\x8f\xe5\xb7\x9d\xe9\x9f\xb3\xe5\xad\x90']

와 같이 딕셔너리 value 리스트 자체를 출력했을때는 hex bytes로 출력 됩니다.

그런데

a[0].encode('utf-8')

로 첫번째 엘리먼트만 인코딩을 하면 제가 크롤링한 일본어로 정상적으로 출력 됩니다. 리스트 안의 모든 요소를 크롤링해온 일본어로 출력되게 하려면 어떻게 해야 할까요?

1답변

  • 해결했습니다. 파이썬에서는 인코딩된 리스트 자체를 출력할 경우에는 hex 데이터가 출력 됩니다. 그래서 아래와 같이 리스트 join으로 문자열로 변환해 출력했더니 원하는 결과를 얻었습니다. 제가 사용한 코드는 아래와 같습니다.

                name = sel.xpath('//*[@id="performer"]/a/text()').extract()
                namejoin = [n.encode('utf-8') for n in name]
                item['name'] = " , ".join(namejoin)
                print item['name']
    
    

    코딩 초로라 이것저것 참 힘드네요 ㅠㅠ

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.