【问题标题】:Write Python dictionary to file将 Python 字典写入文件
【发布时间】:2020-08-26 15:13:18
【问题描述】:

我一直在尝试了解如何使用网站 API 以及如何使用 get 方法从网站下载数据。

目前我有一本大字典,我正在尝试写入文件。

当我将它输出到一个文件时,它看起来像这样:

 {"Tickets":[{"Project":"Test_Project", "TicketID":"1", "Title":"Title_1", "Reportedby":"User_1"},{"Project":"Test_Project", "TicketID":"2", "Title":"Title_2", "Reportedby":"User_2"}]}

如何将其输出到 Excel 文件?

我尝试过使用各种字符串格式,例如:

response_string = response_string[response_string.find("["):len(response_string)-1]
response_string = response_string[1:len(response_string)-1]
response_string = response_string.replace("},{","} , {")
response_array = response_string.split(" , ") + response_array

但我知道这不是正确的方式,因为文本中的逗号真的会搞砸。

谢谢, A.

【问题讨论】:

标签: python excel get


【解决方案1】:

如果要将字典保存到 csv 文件,基本方法是使用 csv 模块。假设您有一个字典列表,其中键作为您要保存的列名和值。

import csv

data = {"Tickets":[{"Project":"Test_Project", "TicketID":"1", "Title":"Title_1", "Reportedby":"User_1"},{"Project":"Test_Project", "TicketID":"2", "Title":"Title_2", "Reportedby":"User_2"}]}

#Write a CSV file. 
f = open('temp','w')
c = csv.DictWriter(f,data['Tickets'][0].keys())
c.writeheader()
c.writerows(data['Tickets'])
f.close()

#Read a CSV file. 
f = open('temp','r')
c = csv.DictReader(f)
data = {'Tickets':list(c)}
f.close()

【讨论】:

  • 这似乎是我正在寻找的,但有没有办法写入 .xlsx 而不是 .csv?
  • 并非如此,CSV 文件与 excel 无关。它是一个逗号分隔值文件。 Excel 可以轻松打开它。在 excel 中,通过选择另存为,将文件转换为 xlsx。主要区别在于 CSV 可以用任何编辑器打开并易于阅读,因为它是字符串和逗号,但 xlsx 文件是 Microsoft 产品使用的压缩 XML 文件的集合。尝试使用记事本或 gedit 等编辑器打开 .xlsx 文件。
  • 可能有一些模块知道如何为 xlsx 格式创建 XML 文件的压缩堆栈。但我完全不知道。
【解决方案2】:

保存字典或任何其他文件的更简单方法是来自 sklearn.externals 的 joblib。

您可以在一行中执行此操作。

joblib.dump('filename', dict_name)

https://scikit-learn.org/stable/modules/model_persistence.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多