将 .pkl 文件转换为 .csv 文件

Ani*_*ita 7 python pickle export-to-csv

我正在处理一个需要大量数据的 python 文件,但我无法编辑我的数据。有人可以建议我一段有关如何将 .pkl 文件转换为 .csv 文件的代码吗?

小智 9

将 PKL 文件转换为 csv 的最简单方法

import pickle as pkl
import pandas as pd
with open("file.pkl", "rb") as f:
    object = pkl.load(f)
    
df = pd.DataFrame(object)
df.to_csv(r'file.csv')
Run Code Online (Sandbox Code Playgroud)


小智 3

我在这里发现了类似的问题:

如何将 python 对象 pickle 到 csv 文件中?

你需要这个例子:

import base64, csv
with open('a.csv', 'a', encoding='utf8') as csv_file:
    wr = csv.writer(csv_file, delimiter='|')
    pickle_bytes = pickle.dumps(obj)            # unsafe to write
    b64_bytes = base64.b64encode(pickle_bytes)  # safe to write but still bytes
    b64_str = b64_bytes.decode('utf8')          # safe and in utf8
    wr.writerow(['col1', 'col2', b64_str])
Run Code Online (Sandbox Code Playgroud)

我修改它以从您的 pickle 文件中读取:

import pickle        
import base64
import csv

your_pickle_obj = pickle.loads(open('data.pkl', 'rb').read())
with open('output.csv', 'a', encoding='utf8') as csv_file:
    wr = csv.writer(csv_file, delimiter='|')
    pickle_bytes = pickle.dumps(your_pickle_obj)            # unsafe to write
    b64_bytes = base64.b64encode(pickle_bytes)  # safe to write but still bytes
    b64_str = b64_bytes.decode('utf8')          # safe and in utf8
    wr.writerow(['col1', 'col2', b64_str])
Run Code Online (Sandbox Code Playgroud)