Estoy probando copiar un poco de la data del csv, lo pasé a un editor
y el código funcionó perfecto. No se si el archivo original tendrá
algún inconveniente, mi código o funciona porque copié una parte de la
info y no todo el resto.
Adjunto el archivito que hice, el código no lo toqué, lo único que
hice fue comentar la línea del with para colocar el nombre nuevo, y
quedó así:
with open('demo.csv', 'rt') as File:
Y la salida es la siguiente:
['T02 Region/Contry/Area', ' Population density and surface area', '
Year', ' Series', ' Value']
['1', ' Total all countries or areas', ' 2005', ' Population mid-year
estimates (millions)', ' 6541.9070']
['1', ' Total all countries or areas', ' 2005', ' Population mid-year
estimates for males (millions)', ' 3296.4853']
['1', ' Total all countries or areas', ' 2005', ' Population mid-year
estimates for females (millions)', ' 3245.4217']
['1', ' Total all countries or areas', ' 2005', ' Sex ratio (males per
100 females)', ' 101.5734']
['1', ' Total all countries or areas', ' 2005', ' Population aged 0 to
14 years old (porcentage)', ' 28.1425']
['1', ' Total all countries or areas', ' 2005', ' Population aged 60+
years old (porcentage)', ' 10.2516']
[]
Justo mando esto cuando Darío me respondió. Saludos
El dom., 19 jul. 2020 a las 16:22, Lemarchand Barker
(<[email protected]>) escribió:
>
> Buenas, estoy leyendo un csv, al principio no me leía, hasta que logré que lo
> haga, pero el problema viene cuando lee. Me muestra el resultado y al final
> me da un mensaje de error.
>
> El código es el siguiente:
>
> import csv
>
> # with open('SYB62_1_201907_Population_Surface_Area_and_Density.csv',
> newline='') as File:
> with open('population.csv', 'rt') as File:
> reader = csv.reader(File)
> for row in reader:
> print(row)
>
> La salida es la siguiente:
>
> ['188', 'Costa Rica', '2005', 'Population mid-year estimates for females
> (millions)', '2.1369', '', 'United Nations Population Division, New York,
> World Population Prospects: The 2019 Revision, last accessed June 2019.']
> ['188', 'Costa Rica', '2005', 'Sex ratio (males per 100 females)',
> '100.5460', '', 'United Nations Population Division, New York, World
> Population Prospects: The 2019 Revision; supplemented by data from the United
> Nations Statistics Division, New York, Demographic Yearbook 2015 and
> Secretariat for the Pacific Community (SPC) for small countries or areas,
> last accessed June 2019.']
> Traceback (most recent call last):
> File "/home/raiden/Programacion/curso/ejercicios/testcsv.py", line 6, in
> <module>
> for row in reader:
> File "/usr/lib/python3.8/codecs.py", line 322, in decode
> (result, consumed) = self._buffer_decode(data, self.errors, final)
> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf4 in position 6529:
> invalid continuation byte
>
> Solo copié un fragmento de toda la salida; lo que se ve antes del Traceback;
> porque es bastante extenso el texto. Otra cosa que hice fue cambiarle el
> nombre, porque era muy extenso el original.
>
> Al abrir el archivo con la planilla de cálculo la línea 6529, es la siguiente:
> 760 Syrian Arab Republic 2010 Population aged 0 to 14 years old (percentage)
> 37.3903
>
> El contenido del csv se puede ver en este link (formato pdf): pdf
> El original se encuentra acá: http://data.un.org/
> El csv es desde la izquierda, la primer columna, donde dice:
>
> Population, surface area and density
> PDF | CSV Updated: 23-Jul-2019
>
> Perdón la ignorancia pero no se que puede ser lo que me esté generando esa
> salida de Unicode.
> Saludos, gracias
T02 Region/Contry/Area, Population density and surface area, Year, Series, Value
1, Total all countries or areas, 2005, Population mid-year estimates (millions), 6541.9070
1, Total all countries or areas, 2005, Population mid-year estimates for males (millions), 3296.4853
1, Total all countries or areas, 2005, Population mid-year estimates for females (millions), 3245.4217
1, Total all countries or areas, 2005, Sex ratio (males per 100 females), 101.5734
1, Total all countries or areas, 2005, Population aged 0 to 14 years old (porcentage), 28.1425
1, Total all countries or areas, 2005, Population aged 60+ years old (porcentage), 10.2516
_______________________________________________
Python-es mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-es