首页 > 解决方案 > 将登录页面后面的 url 中的 csv 加载到 pandas 数据框中

问题描述

我尝试将 csv 文件加载到 pandas 数据框中,但 csv 文件只能在登录后访问。

到目前为止,它下载并print(decoded_content)筛选,但我不知道如何将 csv 加载到 pandas 数据框中:

import requests
import urllib2
import pandas as pd
import csv


headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/133.35 (KHTML, like Gecko) Chrome/20.0.2041.120 Safari/521.14'
}

login_data = {
    'username': 'myusername',
    'password': 'mypassword',
    'stayloggedin': '0',
    'login': 'Login'
}

with requests.Session() as s:
    url = 'https://www.domain.tld/en/login.html'
    r = s.get(url, headers=headers)
    r = s.post(url, data=login_data, headers=headers)

    a = s.get('https://www.domain.tld/path/to/file/data.csv')
    decoded_content = a.content.decode('utf-8')

print (decoded_content)

.

Col1;Col2;Col3
0102;120;212
121;122;331

标签: pythonpandasauthenticationpython-requests

解决方案


2020/04/21 编辑

解决方案:

TestFile.csv用你的数据创建:

Col1;Col2;Col3
0102;120;212
121;122;331

重要的是要注意分隔符是分号。

import pandas as pd

df = pd.read_csv('TestFile.csv', sep=';')
print(df)
print(type(df))

输出:

   Col1  Col2  Col3
0   102   120   212
1   121   122   331
<class 'pandas.core.frame.DataFrame'>

Process finished with exit code 0

read_csv的说明有很多参数,因为 .csv 文件不受一组严格的规则的约束。


推荐阅读