首页 > 解决方案 > 我可以使用文本文件将数据加载到 python 中的字典中吗?

问题描述

基本上我想将字典存储在文本文件中,原因是我希望即使在完成程序后也能够打开文件并对其进行编辑。

这是我用来帮助我了解地质历史中某些事件的日期的测验程序,我希望能够在不访问代码的情况下添加更多问题。

所以我想要一个问题列表,旁边有他们的日期,这些问题将被导入回python,基本上是一个包含一堆问题的文件,如下所示:

"Pangea formed":335000000, #Carboniferous
"Gondwana split into Africa and South America":180000000, #Jurassic
"The Chicxulub crater, buried in Mexico, formed":66043000, #Cretaceous

问题是我不认为 python 在读取记事本文件时可以区分字符串和值。

有没有办法做到这一点?

标签: python

解决方案


您想从文件中加载字典的内容。该文件应该是人类可读/可编辑的。一种解决方案是将文件保存为 JSON 格式。

JSON是一种格式,可用于将字典、列表等基本对象转换为文本,反之亦然。

所以让文件的内容为:

{
  "Pangea formed":335000000,
  "Gondwana split into Africa and South America":180000000,
  "The Chicxulub crater, buried in Mexico, formed":66043000
}

现在该文件,即使是一个可以在记事本中打开和编辑的文本文件,也是 JSON 格式。注意左大括号和右大括号。要将文件加载到字典中,您可以执行以下操作:

import json

with open('file.json') as f: 
    my_dict = json.load(f)

请注意,我已删除评论,因为 JSON 不支持评论。此外,最后一个键值对不以逗号结尾。


推荐阅读