python 3.0 open () Standardkodierung

Ich versuche, die Zeilen in einer JSON-Datei zu zählen.licken Sie HIER, um auf meine JSON-Datei zuzugreife

Ich habe versucht, den folgenden Code zu verwenden, um die Zeilen zu zählen.

input = open("json/world_bank.json")
i=0
for l in input:
    i+=1
print(i)

Aber der obige Code löst einen UniCodeDecode-Fehler aus, wie unten gezeigt.

---------------------------------------------------------------------------
UnicodeDecodeError                        Traceback (most recent call last)
<ipython-input-17-edc88ade7225> in <module>()
      2 
      3 i=0
----> 4 for l in input:
      5     i+=1
      6 

C:\Users\Subbi Reddy\AppData\Local\Continuum\Anaconda3\lib\encodings\cp1252.py in decode(self, input, final)
     21 class IncrementalDecoder(codecs.IncrementalDecoder):
     22     def decode(self, input, final=False):
---> 23         return codecs.charmap_decode(input,self.errors,decoding_table)[0]
     24 
     25 class StreamWriter(Codec,codecs.StreamWriter):

UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 3979: character maps to <undefined>

Dann habe ich den Kodierungsparameter in die offene Funktion aufgenommen, wie unten gezeigt.

input = open("json/world_bank.json",encoding="utf8")

Dann fing es an zu arbeiten und gab die Ausgabe als 500.

Soweit ich weiß, sollte Python Open "utf8" als Standardkodierung verwenden.

Wo gehe ich hier falsch.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage