【问题标题】:From HTTP response to csv从 HTTP 响应到 csv
【发布时间】:2019-04-16 09:24:17
【问题描述】:

我需要将数据从 URL 导出到 csv,此代码有效,但是位于此 URL 上的数据写入一个没有分隔符的字符串,如何解决?

import urllib
import pandas as pd

URL="https://www.star.nesdis.noaa.gov/smcd/emb/vci/NPP_VH/4km/ts_L1_v1/ByWeek/VHP_L1_Mean_198135.txt"
vhi_url = urllib.request.urlopen(URL)
out = open('vhi_id_16.csv','wb')
out.write(vhi_url.read())
out.close()

【问题讨论】:

  • 考虑到您正在下载的VHP_L1_Mean_198135.txt 文件的扩展名不是 CSV... 那么您希望 Python 如何知道您需要将纯文本转换为 CSV?
  • Edit你的问题并显示print(vhi_url.read(100))的输出
  • 最好使用文本模式编写文本文件 - w 而不是 wb
  • @MrMister:请解释一下原因?
  • @Andersson 我看到了在 csv 中转换 json 数据的 url 并认为可以是纯文本的主题

标签: python python-3.x python-2.7 python-requests


【解决方案1】:

使用您的代码的这种细微变化:

from urllib import request

with open('vhi_id_16.csv', 'w') as out:
    with request.urlopen('PUT_URL_HERE') as response:
        encoding = response.headers.get_content_charset('utf-8')
        out.write(response.read().decode(encoding))
        out.close()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-22
    • 2016-10-26
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多