我无法在Python中读取csv文件。结果有很多行而不是单元格

拉斯普蒂诺

我是Python的新手。我正在尝试从URL下载并读取CSV。我有以下代码:

import csv
import requests


url = "http://www.aemet.es/es/eltiempo/observacion/ultimosdatos_8178D_datos-horarios.csv?k=clm&l=8178D&datos=det&w=0&f=temperatura&x=h24"
r = requests.get(url)
contenido = r.content
assert isinstance(contenido, basestring)
sin3lineas = '\r\n'.join( contenido.split('\r\n')[3:])
sin3lineasutf8 = sin3lineas.decode('latin-1').encode('utf-8')

print sin3lineasutf8

#cr = csv.reader(sin3lineasutf8,quotechar='"', delimiter=',', quoting=csv.QUOTE_ALL, skipinitialspace=False)
cr = csv.reader(sin3lineasutf8)
for row in cr:
    print row,
    print len(row)

读取的结果是:

"Fecha y hora oficial","Temperatura (ºC)","Velocidad del viento (km/h)","Dirección del viento","Racha (km/h)","Dirección de racha","Precipitación (mm)","Presión (hPa)","Tendencia (hPa)","Humedad (%)"
"19/02/2016 00:00","4.4","0","Calma","6","Nordeste","0.0","937.0","1.0","88"
"18/02/2016 02:00","4.3","10","Oeste","25","Oeste","0.0","935.3","-0.2","60"
...
"18/02/2016 01:00","4.2","12","Oeste","30","Noroeste","0.0","935.7","0.0","58"

['Fecha y hora oficial'] 1
['', ''] 2
['Temperatura (\xc2\xbaC)'] 1
['', ''] 2
['Velocidad del viento (km/h)'] 1
['', ''] 2
['Direcci\xc3\xb3n del viento'] 1
['', ''] 2
...
[] 0
[] 0

Process finished with exit code 0

读取的CSV有很多行而不是单元格,但是我不知道为什么。我尝试了csv.read函数的许多参数,但是没有一个参数可以解决问题。

有任何想法吗?

ec

将其response.text放入缓冲区对我有用:

import csv
from StringIO import StringIO

import requests


url = "http://www.aemet.es/es/eltiempo/observacion/ultimosdatos_8178D_datos-horarios.csv?k=clm&l=8178D&datos=det&w=0&f=temperatura&x=h24"
r = requests.get(url)

buffer = StringIO(r.text)
cr = csv.reader(buffer)
for row in cr:
    print(row)

印刷:

['Albacete']
['Actualizado: viernes', ' 19 febrero 2016 a las 00:42 hora oficial']
[]
['Fecha y hora oficial', 'Temperatura (ºC)', 'Velocidad del viento (km/h)', 'Dirección del viento', 'Racha (km/h)', 'Dirección de racha', 'Precipitación (mm)', 'Presión (hPa)', 'Tendencia (hPa)', 'Humedad (%)']
['19/02/2016 00:00', '4.4', '0', 'Calma', '6', 'Nordeste', '0.0', '937.0', '1.0', '88']
['18/02/2016 23:00', '4.7', '0', 'Calma', '5', 'Nordeste', '0.0', '936.9', '1.5', '86']
['18/02/2016 22:00', '4.7', '0', 'Calma', '5', 'Nordeste', '0.0', '936.7', '1.9', '84']
['18/02/2016 21:00', '5.3', '0', 'Calma', '5', 'Nordeste', '0.0', '936.0', '1.8', '83']
['18/02/2016 20:00', '5.9', '0', 'Calma', '5', 'Noroeste', '0.0', '935.4', '1.3', '82']
['18/02/2016 19:00', '6.4', '0', 'Calma', '10', 'Oeste', '0.0', '934.8', '1.2', '77']
['18/02/2016 18:00', '6.9', '2', 'Noroeste', '13', 'Noroeste', '0.0', '934.2', '0.6', '74']
['18/02/2016 17:00', '7.1', '4', 'Noroeste', '12', 'Oeste', '0.0', '934.1', '0.3', '73']
['18/02/2016 16:00', '7.2', '3', 'Noroeste', '12', 'Noroeste', '0.0', '933.6', '-0.7', '73']
['18/02/2016 15:00', '7.0', '4', 'Noroeste', '14', 'Noroeste', '0.0', '933.6', '-1.3', '77']
['18/02/2016 14:00', '6.6', '2', 'Noroeste', '16', 'Noroeste', '0.0', '933.8', '-1.1', '79']
['18/02/2016 13:00', '6.3', '5', 'Noroeste', '18', 'Noroeste', '0.0', '934.3', '-0.5', '82']
['18/02/2016 12:00', '5.5', '5', 'Noroeste', '14', 'Oeste', '0.0', '934.9', '0.1', '87']
['18/02/2016 11:00', '4.6', '3', 'Noroeste', '9', 'Oeste', '0.0', '934.9', '1.2', '95']
['18/02/2016 10:00', '3.4', '0', 'Calma', '5', 'Nordeste', '0.0', '934.8', '0.6', '95']
['18/02/2016 09:00', '3.1', '0', 'Calma', '5', 'Norte', '0.0', '934.8', '0.7', '94']
['18/02/2016 08:00', '3.4', '0', 'Calma', '5', 'Oeste', '0.0', '933.7', '-0.2', '91']
['18/02/2016 07:00', '3.5', '0', 'Calma', '10', 'Oeste', '0.0', '934.2', '-0.2', '88']
['18/02/2016 06:00', '3.6', '3', 'Noroeste', '15', 'Oeste', '0.0', '934.1', '-0.9', '86']
['18/02/2016 05:00', '3.9', '5', 'Oeste', '18', 'Sudoeste', '0.0', '933.9', '-1.4', '73']
['18/02/2016 04:00', '4.1', '7', 'Oeste', '17', 'Oeste', '0.0', '934.4', '-1.3', '68']
['18/02/2016 03:00', '4.2', '7', 'Oeste', '23', 'Noroeste', '0.0', '935.0', '-0.6', '64']
['18/02/2016 02:00', '4.3', '10', 'Oeste', '25', 'Oeste', '0.0', '935.3', '-0.2', '60']
['18/02/2016 01:00', '4.2', '12', 'Oeste', '30', 'Noroeste', '0.0', '935.7', '0.0', '58']

如果要跳过前4行以获取实际数据,可以使用islice()

from itertools import islice

for row in islice(cr, 4, None):
    print(row)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

读取csv文件中的单元格

来自分类Dev

如何使用C#读取具有多行单元格的CSV文件

来自分类Dev

如何在Java中读取包含某些单元格且包含多行的.csv文件?

来自分类Dev

用python写入一个单元格中有多行的csv文件

来自分类Dev

Python docstrings(Sphinx)中的csv表格式-单个单元格中有多行

来自分类Dev

使用Python读取CSV文件行中的最后一个非空单元格

来自分类Dev

使用python替换csv文件中列而不是标题中的单元格

来自分类Dev

我可以在csv文件中创建带有枚举值的单元格吗

来自分类Dev

我可以使用SpreadsheetGear从CSV文件中读取而不格式化单元格吗?

来自分类Dev

读取 csv 文件,在行/单元格中插入新计算的值并覆盖相同的 csv 文件

来自分类Dev

Bash读取所有列并从CSV文件显示每一行中的空白单元格

来自分类Dev

read.csv 读取带有函数的 csv 文件,用 ="{value}" 包裹的单元格

来自分类Dev

Python替换CSV文件的单元格

来自分类Dev

使用openpyxl读取多行单元格

来自分类Dev

Swift中的Tableview中的JSON结果显示结果列表,而不是每个单元格中的每个结果(附有图片)

来自分类Dev

LibreOffice Calc在单元格中显示公式而不是结果

来自分类Dev

如何从C ++ ..中的Excel(csv)文件的不同单元格读取数据?

来自分类Dev

Shell脚本-读取CSV文件行并为单元格中的多个值添加前缀

来自分类Dev

Python / Pandas-将空单元格写入csv文件(而不是零)

来自分类Dev

如何在Python表中具有多行单元格?

来自分类Dev

读取单元格中带有换行符的数据集CSV

来自分类Dev

我想将整个单元格而不是单个单元格排列在特定的列中

来自分类Dev

尝试遍历目录中的CSV文件并获取特定的单元格,然后将结果发布到单个csv中

来自分类Dev

Excel筛选列中的所有单元格,而不是筛选的那些单元格

来自分类Dev

如果有文本,如何对单元格中的数字求和?

来自分类Dev

将字符串与CSV文件中的单元格匹配并返回相邻的单元格

来自分类Dev

使用python将xml数据转储到csv文件中的单元格中

来自分类Dev

当csv文件在单元格linux中带有逗号时进行剪切

来自分类Dev

如何在CSV文件的特定列中搜索所有行的空单元格?

Related 相关文章

  1. 1

    读取csv文件中的单元格

  2. 2

    如何使用C#读取具有多行单元格的CSV文件

  3. 3

    如何在Java中读取包含某些单元格且包含多行的.csv文件?

  4. 4

    用python写入一个单元格中有多行的csv文件

  5. 5

    Python docstrings(Sphinx)中的csv表格式-单个单元格中有多行

  6. 6

    使用Python读取CSV文件行中的最后一个非空单元格

  7. 7

    使用python替换csv文件中列而不是标题中的单元格

  8. 8

    我可以在csv文件中创建带有枚举值的单元格吗

  9. 9

    我可以使用SpreadsheetGear从CSV文件中读取而不格式化单元格吗?

  10. 10

    读取 csv 文件,在行/单元格中插入新计算的值并覆盖相同的 csv 文件

  11. 11

    Bash读取所有列并从CSV文件显示每一行中的空白单元格

  12. 12

    read.csv 读取带有函数的 csv 文件,用 ="{value}" 包裹的单元格

  13. 13

    Python替换CSV文件的单元格

  14. 14

    使用openpyxl读取多行单元格

  15. 15

    Swift中的Tableview中的JSON结果显示结果列表,而不是每个单元格中的每个结果(附有图片)

  16. 16

    LibreOffice Calc在单元格中显示公式而不是结果

  17. 17

    如何从C ++ ..中的Excel(csv)文件的不同单元格读取数据?

  18. 18

    Shell脚本-读取CSV文件行并为单元格中的多个值添加前缀

  19. 19

    Python / Pandas-将空单元格写入csv文件(而不是零)

  20. 20

    如何在Python表中具有多行单元格?

  21. 21

    读取单元格中带有换行符的数据集CSV

  22. 22

    我想将整个单元格而不是单个单元格排列在特定的列中

  23. 23

    尝试遍历目录中的CSV文件并获取特定的单元格,然后将结果发布到单个csv中

  24. 24

    Excel筛选列中的所有单元格,而不是筛选的那些单元格

  25. 25

    如果有文本,如何对单元格中的数字求和?

  26. 26

    将字符串与CSV文件中的单元格匹配并返回相邻的单元格

  27. 27

    使用python将xml数据转储到csv文件中的单元格中

  28. 28

    当csv文件在单元格linux中带有逗号时进行剪切

  29. 29

    如何在CSV文件的特定列中搜索所有行的空单元格?

热门标签

归档