2016-06-01 1 views
1

스팀 인벤토리에서 JSON을 가져 오려고합니다. 다음과 같은 데이터가 표시됩니다.JSON 인코딩 및 URL에서 다운로드

def downloadString(url): 
    req = urllib.request.Request(
     url, 
     data=None, 
     headers={ 
      'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36' 
     } 
    ) 
    f = urllib.request.urlopen(req) 
    return f.read().decode("utf-8") 

이제 인코딩 문제가 발생합니다.

def test(string): 
    print(json.loads(string)) 

test(downloadString(url)) 

File "C:\Python34\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u2605' in position 83559: character maps to

정말 내가 다른 일을 할 수 있는지 이해가 안

... 어떤 도움 : 증기는 충돌로 JSON 부분의 원인 "블랙 스타"('\의 u2605')와 같은 기호를 사용한다 도움이 될거야.

+0

안녕하세요. [link] (http://www.joelonsoftware.com/articles/Unicode.html) – saq7

+0

.decode ('utf-8')를 제거하면 어떻게됩니까? – glls

+0

이미 시도 : 파일 "C : \ Python34 \ lib 디렉토리 \ JSON \ __ init__.py", 라인 (312), 부하의 의 .__ 클래스 __.__ name__)) 형식 오류 다음 JSON 객체가 str에해야하지 '바이트' –

답변

0

JSON은 UTF-8, UTF-16 또는 UTF-32 중 하나로 인코딩 할 수 있습니다. 나는 UTF-8 대신 UTF-16으로 디코딩을 시도 할 것이다.

+0

그것은 똑같은, 같은 오류를 않습니다. –