2017-05-03 1 views
0

zu öffnen, wenn ich laufe dies:UnicodeDecodeError versucht, eine JSON-Datei

import json, sys 

with open('/Users/mac/Desktop/export-2017-04-28-0235-25014395ac.json', 'r') as json_data: 
    d = json.load(json_data) 
print(d) 

Es gibt einen Fehler, dass ich nicht ganz sicher bin, was zu denken. Ich habe meine Nachforschungen gemacht und bin mir nicht sicher, ob ich verstehe, was falsch ist. Wenn mir jemand helfen kann, wäre das großartig.

Hier ist der Fehler:

Traceback (most recent call last): 
    File "/Users/mac/Desktop/untitled.py", line 4, in <module> 
    d = json.load(json_data) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/__init__.py", line 296, in load 
    return loads(fp.read(), 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/encodings/ascii.py", line 26, in decode 
    return codecs.ascii_decode(input, self.errors)[0] 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 39966: ordinal not in range(128) 
[Finished in 0.5s with exit code 1] 
[shell_cmd: python3 -OO -u "/Users/mac/Desktop/untitled.py"] 
[dir: /Users/mac/Desktop] 
[path: /usr/bin:/bin:/usr/sbin:/sbin] 

Antwort

3

JSON erwartet Sie die Decodierung zu tun. 99% der Zeit utf-8 erledigt den Job.

import json, sys 

with open('/Users/mac/Desktop/export-2017-04-28-0235-25014395ac.json', 
     'r', encoding='utf-8') as json_data: 
    d = json.load(json_data) 
print(d) 
+0

@puffballjack: Für t anderen 2% der Zeit versuchen 'encoding = 'latin-1''. – martineau

+0

Danke, gibt es irgendeinen Weg, wie du mir bei der nächsten Frage helfen kannst, die ich habe, ich könnte auch keine spezifische Lösung finden. Ich weiß, dass es viele ähnliche Fragen gibt, aber ich konnte keine der Lösungen zum Laufen bringen und konnte es mir selbst nicht erklären. – puffballjack

0

Dank @tdelaney es funktionierte, aber ich bin jetzt aber eine andere Störung zu erhalten, die ich kann auch keine Lösung sowie finden. Weiß jemand, was hier vor sich geht? Außerdem frage ich mich, ob die JSON-Größe das Problem ist. Es ist ungefähr 200mb.

Hier ist der Fehler jetzt:

Traceback (most recent call last): 
    File "/Users/mac/Desktop/untitled.py", line 5, in <module> 
    d = json.load(json_data) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/__init__.py", line 299, in load 
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/__init__.py", line 354, in loads 
    return _default_decoder.decode(s) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/json/decoder.py", line 342, in decode 
    raise JSONDecodeError("Extra data", s, end) 
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 15629) 
[Finished in 1.5s with exit code 1] 
[shell_cmd: python3 -OO -u "/Users/mac/Desktop/untitled.py"] 
[dir: /Users/mac/Desktop] 
[path: /usr/bin:/bin:/usr/sbin:/sbin]