Моя цель - получить доступ к некоторым данным с веб-сайта и поместить эти данные в память (НЕ загружать локально), чтобы я мог провести дальнейшие манипуляции. Вот мой код Python:
import pandas as pd
import requests
from requests.auth import HTTPBasicAuth
year = 2019
month_str = 'Jan'
date = 2
month = 1
user = XXXX
password = XXXX
response = requests.get('http_some_url/%i/%s/%02d/%i%02d%02d.gz' % (year,month_str,date,year,month,date), auth = HTTPBasicAuth(user, password))
x = pd.read_csv(response.text, compression='gzip', sep = '|')
print(x.head())
Данные находятся в папке "year" => "month_str" => "date" с именем файла "year + month + date.gz". когда я запускаю этот код, он возвращает
"ValueError: embedded null byte".
Какой правильный способ сделать это?
update:
print(response)
<Response [200]>
, когда я печатаю ответ, он возвращает 200, что означает, что в нем что-то есть.
update:
response = requests.get('http_some_url/%i/%s/%02d/%i%02d%02d.gz' % (year,month_str,date,year,month,date), auth = HTTPBasicAuth(user, password))
print(response)
x = pd.read_csv(response.content, compression='gzip', sep = '|')
print(x)
После того как я заменил response.text на response.content и распечатал, он возвращает:
AttributeError: 'bytes' object has no attribute 'read'
И вот пример в этом файле gzip:
093013399690000|310001|C|A|59.85|73.15|A||
093030000913000|353701|C|A|59.85|73.15|B||
093100000411000|460501|C|A|59.85|73.15|B||
093130000630000|697401|C|A|59.85|73.15|B||
093200000464000|841501|C|A|59.85|73.15|B||
093230000508000|1013801|C|A|59.85|73.15|B||
093300000550000|1148701|C|A|59.85|73.15|B||
093330000394000|1313701|C|A|59.85|73.15|B||
093400000590000|1485801|C|A|59.85|73.15|B||
093430000495000|1652601|C|A|59.85|73.15|B||
093500000593000|1856201|C|A|59.85|73.15|B||