【发布时间】:2020-10-01 09:30:58
【问题描述】:
我正在尝试通过 Jupyter 笔记本上的 Python 从 Google Cloud 存储中读取 .gz 文件。
我收到第一个代码的错误。
TypeError: can't concat str to bytes
from google.cloud import storage
import pandas as pd
from io import StringIO
client = storage.Client()
bucket = client.get_bucket("nttcomware")
blob = bucket.get_blob(f"test.csv.gz")
df = pd.read_csv(s, compression='gzip', float_precision="high")
df.head()
第二个代码出现第二个错误。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
from google.cloud import storage
import pandas as pd
from io import StringIO
client = storage.Client()
bucket = client.get_bucket("nttcomware")
blob = bucket.get_blob(f"test.csv.gz")
bt = blob.download_as_string()
s = str(bt, "utf-8")
s = StringIO(s)
df = pd.read_csv(s, compression='gzip', float_precision="high")
df.head()
请提出建议。
【问题讨论】:
-
问题出在gz文件的解码中,尝试将
s = str(bt, "utf-8")替换为s = str(unicode(bt, errors='replace')),如果可行,请告诉我。 -
感谢您的回答。但它没有工作..
标签: python pandas google-cloud-storage