Я пытаюсь прочитать ZipFile
данные из URL-адреса и через StringIO
проанализировать данные внутри ZipFile
как csv, используя pandas.read_csv
r = req.get("http://seanlahman.com/files/database/lahman-csv_2014-02-14.zip").content
file = ZipFile(StringIO(r))
salaries_csv = file.open("Salaries.csv")
salaries = pd.read_csv(salaries_csv)
Последняя строка дала мне ошибку:
CParserError: Error tokenizing data. C error: Calling read(nbytes) on source failed. Try engine='python'.
Однако, если я попробую использовать
salaries = pd.read_csv(file.open("Salaries.csv"))
оно работает.
Так что мне было интересно, что я здесь упускаю.
file.open
должен возвращать объект ZipExtFile
, и поскольку read_csv принимает только ввод строки или дескриптора файла / StringIO
, почему тогда последняя строка работает?