使用pandas将文本数据从请求对象转换为数据帧

spa*_*row 10 python csv dataframe pandas python-requests

使用请求我正在创建一个.csv格式的对象.然后我怎么能用pandas将该对象写入DataFrame?

以文本格式获取请求对象:

import requests
import pandas as pd
url = r'http://test.url' 
r = requests.get(url)
r.text  #this will return the data as text in csv format
Run Code Online (Sandbox Code Playgroud)

我试过(不起作用):

pd.read_csv(r.text)
pd.DataFrame.from_csv(r.text)
Run Code Online (Sandbox Code Playgroud)

Mer*_*lin 20

试试这个

import requests
import pandas as pd
import io

urlData = requests.get(url).content
rawData = pd.read_csv(io.StringIO(urlData.decode('utf-8')))
Run Code Online (Sandbox Code Playgroud)


jez*_*ael 5

我想你可以用read_csvurl:

pd.read_csv(url)
Run Code Online (Sandbox Code Playgroud)

filepath_or_buffer:str,pathlib.Path,py._path.local.LocalPath或任何带有read()方法的对象(例如文件句柄或StringIO)

字符串可以是URL.有效的URL方案包括http,ftp,s3和file.对于文件URL,需要主机.例如,本地文件可以是file://localhost/path/to/table.csv

如果它不起作用,请尝试:

import pandas as pd
import io
import requests

url = r'http://...' 
r = requests.get(url)  
df = pd.read_csv(io.StringIO(r) 
Run Code Online (Sandbox Code Playgroud)


Ben*_*nto 5

使用“read_csv with url”有效:

import requests, csv
import pandas as pd
url = 'https://arte.folha.uol.com.br/ciencia/2020/coronavirus/csv/mundo/dados-bra.csv'
corona_bra = pd.read_csv(url)
print(corona_bra.head())
Run Code Online (Sandbox Code Playgroud)