簡體   English   中英

我無法將我的 Dataframe 保存到 Cloud Storage

[英]I can't save my Dataframe to Cloud Storage

def save_csv_to_cloud_storage(df,file_name,folder='output'):

    os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '/Users/******/Desktop/*****.json'
    storage_client = storage.Client()
    bucket = storage_client.get_bucket('fluxlengow')
    now = datetime.now()
    dt_string = now.strftime("%Y%m%d-%H%M%S")
    f = StringIO()
    df.to_csv(f,sep=',')
    f.seek(0)
    Blob('{}/{}_{}_.csv'.format(folder, dt_string, file_name),bucket).upload_from_file(f,content_type='text/csv')


def lengowToStorage():

    liste = ['https://httpnas.****.*****/******/SUP****/*******_FR.csv','https://httpnas.****.*****/******/SUP****/*******_UK.csv','https://httpnas.****.*****/******/SUP****/*******_IT.csv']
    for i in liste :
        name = i.split('/')[-1]
        name = name.split('.')[0]
        CSV_URL = '{}'.format(i)
        with requests.Session() as s:
            download = s.get(CSV_URL)
            decoded_content = download.content.decode('utf8')
            cr = csv.reader(decoded_content.splitlines(), delimiter='|')
            my_list = list(cr)
            df_ = pd.DataFrame(my_list, columns=my_list[0]).drop(0)
            save_csv_to_cloud_storage(df_,file_name=name,folder='input')
            print("recuperation du fichier : {}".format(i))

lengowToStorage()

大家好,很抱歉,我需要你們的幫助,因為我真的被這個編碼問題困住了。 我正在嘗試將我的數據幀作為 CSV 文件發送到雲存儲。 不幸的是,當我嘗試將其保存到存儲時,我收到此錯誤

'latin-1' codec can't encode character '\u2019' in position 32318: Body ('’') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8.

然后我對每列進行了“utf-8”編碼(未在代碼中顯示)並且保存到 Cloud Storage 確實有效,但我的數據是這種格式:

b'Antaeus Lotion Apr\xc3\xa8s Rasage 100ml'

我解碼了 UTF8,我編碼了 UTF8……但無法將我的數據放入我想要的字符串版本中……

'Antaeus Lotion Après Rasage 100ml'

如果你能幫忙,我會非常感謝

我強烈建議使用gcsfs包,它允許直接從gcsfs寫入存儲桶,給定 URL

def store_dataframe(df, filename,  path = "news"):
    url = f"gs://{BUCKET_NAME}/{path}/{filename}"
    df.to_csv(url)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM