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


파이썬 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')

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

  • 2016년 06월 13일에 수정됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.
  • 2016년 06월 12일에 작성됨

조회수 347


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']

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


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close