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

조회수 5715회

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

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

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)