codificación predeterminada de python 3.0 open ()
Estoy tratando de contar las líneas en un archivo JSON.Haga clic AQUÍ para acceder a mi archivo JSON.
Traté de usar el siguiente código para contar las líneas.
input = open("json/world_bank.json")
i=0
for l in input:
i+=1
print(i)
Pero el código anterior arroja un error UniCodeDecode como se muestra a continuación.
---------------------------------------------------------------------------
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>
Luego incluí el parámetro de codificación en la función abierta como se muestra a continuación.
input = open("json/world_bank.json",encoding="utf8")
Luego comenzó a funcionar y dio una salida de 500.
Hasta donde sé, Python Open debería considerar "utf8" como codificación predeterminada.
Donde estoy yendo mal aquí.