【问题标题】:Download a csv file and customize in Python下载 csv 文件并在 Python 中自定义
【发布时间】:2017-12-10 16:07:20
【问题描述】:

我正在尝试下载一个 csv 文件并使用 python 3 进行自定义。

代码:

from urllib import request

google_url= "https://query1.finance.yahoo.com/v7/finance/download/GOOG?period1=1510328010&period2=1512920010&interval=1d&events=history&crumb=IpXue1sAr6r"

def download_stock_data (csv_url):

    response = request.urlopen (csv_url)
    csv = response.read()
    csv_str = str(csv)
    lines = csv_str.split("\\n")
    dest_url = r'goog.csv'
    fx = open(dest_url, "w")
    for line in lines:
        fx.write(line + "\n")
    fx.close()

download_stock_data (google_url)

错误:

C:\Users\ihsan.iyigun\AppData\Local\Programs\Python\Python36\python.exe C:/Users/ihsan.iyigun/PycharmProjects/untitled3/new.py
Traceback (most recent call last):
  File "C:/Users/ihsan.iyigun/PycharmProjects/untitled3/new.py", line 17, in <module>
    download_stock_data (google_url)
  File "C:/Users/ihsan.iyigun/PycharmProjects/untitled3/new.py", line 6, in download_stock_data
    response = request.urlopen (csv_url)
  File "C:\Users\ihsan.iyigun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\ihsan.iyigun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 532, in open
    response = meth(req, response)
  File "C:\Users\ihsan.iyigun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Users\ihsan.iyigun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 570, in error
    return self._call_chain(*args)
  File "C:\Users\ihsan.iyigun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "C:\Users\ihsan.iyigun\AppData\Local\Programs\Python\Python36\lib\urllib\request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 401: Unauthorized

Process finished with exit code 1

如何调试或修复此问题?

【问题讨论】:

标签: python python-3.x csv export-to-csv


【解决方案1】:

在我看来,您尝试访问的网页需要身份验证。如果是这样,您必须先弄清楚如何以编程方式登录该网站,然后才能访问您想要的页面。

尝试手动访问该 URL,我在浏览器中得到以下信息:

{
    "finance": {
        "error": {
            "code": "Unauthorized",
            "description": "Invalid cookie"
        }
    }
}

【讨论】:

    【解决方案2】:

    首先下载您的 CSV 文件并将其放入我的计算机上的本地驱动器,然后转到运行这些代码以加载您的 csv 文件:

    import csv
    def loadCsv(filename):
        lines=csv.reader(open(filename,"r"))
        dataset=list(lines)
        for i in range(len(dataset)):
            dataset[i]=[float(x) for x in dataset[i]]
        return dataset
    filename='E:\dataset.csv'
    dataset=loadCsv(filename)
    print("Loaded data file {} with {} rows".format(filename,len(dataset)))
    print("First Record{}".format(dataset[1]))
    

    然后按照这些命令打开cmd ->

    C:\Users>cd.. C:>cd Python34 C:\Python34>python.exe e:NB.pyimport csv

    现在你可以得到结果了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多