【问题标题】:Converting .pkl file to .csv file将 .pkl 文件转换为 .csv 文件
【发布时间】:2019-05-07 08:42:34
【问题描述】:

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

【问题讨论】:

  • 欢迎来到 StackOverflow。你的问题是缺乏的。我会假设 pkl 你的意思是一个 python pickle 文件,它可以包含几乎任何东西,它里面的数据是什么样的?到目前为止你尝试过什么?
  • 是的,它是一个 python 泡菜文件。这是一个10人的情感记录文件。
  • 是的,但它看起来像什么?它是一个列表吗?它是什么东西的字典吗?它是不同数据类型的分类吗?
  • 是一个包含字符串数据类型的列表
  • 每个字符串都是格式正确的 csv 行?你能在你的问题中添加这样一个字符串的例子吗?

标签: python export-to-csv pickle


【解决方案1】:

将 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')

【讨论】:

    【解决方案2】:

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

    How can I pickle a python object into a csv file?

    你需要这个例子:

    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])
    

    我将其修改为从您的泡菜文件中读取:

    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])
    

    【讨论】:

    • 这个方法不对,他想把pickle变成csv,而不是把csv变成pickle
    • 从pickle到csv :)
    • 但是好的,我编辑这个例子来加载pickle文件本身。
    • 你能把 pkl 文件上传到某处进行测试吗?
    • 我在谷歌上搜索了一些关于这个错误信息的信息。也许这是一个编码问题。有些人写了一个对他们有用的解决方案。他们使用 pickle.loads 而不是 pickle.load,所以请尝试一下:your_pickle_obj = pickle.loads(open('data.pkl', 'rb').read())
    猜你喜欢
    • 2019-08-18
    • 2023-03-10
    • 2021-01-31
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多