2013-10-17 2 views
-8

기본 64 인 코드 문자열이 있습니다.JSON을 통해 바이트 데이터를 전송하는 Python 2.x 및 3.x 호환 코드

some_s = base64.encodestring(....) 

파이썬 2.7에서는 이러한 문자열을 JSON (json.dumps)로 serialize 할 수 있습니다. 파이썬 3.3 'some_s'에서

는 바이트 문자열 및 STR 첫 번째 '로 convertered 할 필요가 :

some_s2 = str(some_s2, encoding='ascii') 

그런 다음 some_s2는 JSON으로 직렬화 할 수 있습니다.

불행히도 파이썬 2.7은 인코딩 매개 변수를 str() 호출의 일부로 허용하지 않습니다.

여기 파이썬 2.7과 파이썬 3.3 모두에서 실행되는 변환 코드를 어떻게 작성 하시겠습니까?

+6

왜 많은 투표가 이렇게 많습니까? 이것은 합리적인 질문처럼 보입니다. – dawg

답변

5

당신은 당신의 값이 유형 str이 아닌 그를 감지 할 수 있습니다 :

some_s = base64.encodestring(....) 
if not isinstance(some_s, str): 
    some_s = some_s.decode('ascii') 

만 파이썬 3

유형 bytessome_s입니다. 대신 .decode() 메서드를 사용하십시오.

+0

아, 너야. 그것은 당신이 어리석은 '익명'이름을 사용하기 위해 얻는 것입니다. 당신은 나에게서 충고를받습니다. 예,이 경우 유형 검색이 가장 좋습니다. –

관련 문제