我一直在使用用户定义的功能来打开ZIP文件中包含的CSV文件,这对我来说一直很好。当它们保存在Python的.zip文件中时,如何从网址中抓取.csv文件?现在,我正在尝试打开包含在另一个ZIP中的ZIP中的CSV文件,并且遇到了一些麻烦。我没有收到此错误,而不是从CSV获得数据帧的预期输出:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfd in position 0: invalid start byte哪种方式有意义,因为我正在尝试使用以下方式打开一个zip文件 read_csv()import pandas as pddef fetch_multi_csv_zip_from_url(url, filenames=(), *args, **kwargs): assert kwargs.get('compression') is None req = urlopen(url) zip_file = zipfile.ZipFile(BytesIO(req.read())) if filenames: names = zip_file.namelist() for filename in filenames: if filename not in names: raise ValueError( 'filename {} not in {}'.format(filename, names)) else: filenames = zip_file.namelist() return {name: pd.read_csv(zip_file.open(name), *args, **kwargs) for name in filenames}try: from urllib.request import urlopenexcept ImportError: from urllib2 import urlopenfrom io import BytesIOimport zipfilefinal_links_list =['http://www.nemweb.com.au/REPORTS/ARCHIVE/Dispatch_SCADA/PUBLIC_DISPATCHSCADA_20170523.zip', 'http://www.nemweb.com.au/REPORTS/ARCHIVE/Dispatch_SCADA/PUBLIC_DISPATCHSCADA_20170524.zip']l = len(final_links_list)for j in range(0,l): print(j) dfs = fetch_multi_csv_zip_from_url(final_links_list[j])这是我一直在使用的代码,我认为我必须更改以以下内容开头的行:return {name: pd.read_csv(zip_file.open(name)因为它不再返回csv文件,而是zip文件。
添加回答
举报
0/150
提交
取消