当前位置: 首页 > 面试题库 >

从文件中读取python dict

艾晋
2023-03-14
问题内容

我有一个包含多个词典的文件,如下所示:

{'Segment': [{'Price': 271.03, 'Mw': 149.9, '@Number': '1'}, {'Price': 294.46, 'Mw': 106.5, '@Number': '2'}], 'Date': '2014-01-25T23', 'GenName': 60802}
{'Segment': [{'Price': 0, 'Mw': 99, '@Number': '1'}], 'Date': '2014-01-25T00', 'GenName': 57942}
{'Segment': [{'Price': 232.01, 'Mw': 10, '@Number': '1'}, {'Price': 247.31, 'Mw': 15, '@Number': '2'}, {'Price': 251.66, 'Mw': 10, '@Number': '3'}, {'Price': 257.44, 'Mw': 10, '@Number': '4'}, {'Price': 262.07, 'Mw': 9, '@Number': '5'}], 'Date': '2014-01-25T00', 'GenName': 17085}

或这个:

{'Date': '2014-10-21T01', 'Segment': [{'Price': 0, '@Number': '1', 'Mw': 99}], 'GenName': 57942}
{'Date': '2014-10-21T00', 'Segment': [{'Price': 147.1, '@Number': '1', 'Mw': 10}, {'Price': 153.01, '@Number': '2', 'Mw': 15}, {'Price': 158.91, '@Number': '3', 'Mw': 10}, {'Price': 163.64, '@Number': '4', 'Mw': 10}, {'Price': 168.12, '@Number': '5', 'Mw': 9}], 'GenName': 17085}
{'Date': '2014-10-21T20', 'Segment': [{'Price': 209.22, '@Number': '1', 'Mw': 21}], 'GenName': 17541}

换句话说,每个词典中每个键的顺序都不相同。

我的问题:
最好的阅读本词典的方式是什么,以便无论顺序如何都可以调用Date,GenName和Segment?那可能吗?

请注意…这不是来自json文件。如果字典的构造不正确,我确定可以修改生成此输出的脚本。


问题答案:

正如您在评论中提到的,您要自己创建字典,因此以痛苦的.txt格式存储字典并不是一个好主意,Python提供了一个称为“Pickle保存内部任何对象”的库,使用pickle非常简单。

import pickle
#Importing the module

favorite_color = { "Python": "interpreted", "C": "compiled" }
#Initializing a Dictionary (or any Python Object)

pickle.dump( favorite_color, open( "save.p", "wb" ) )
#Saving the Python object in a .p (pickle file)

#Loading the Python object from the Pickle file.
favorite_color = pickle.load( open( "save.p", "rb" ) )

您可以在此模块的帮助下保存任何Python对象(嵌套的或简单的),并在以后需要时访问其值。



 类似资料:
  • 问题内容: 只是因为一个简单,易于表达的陈述使我的脸上有些错误,所以我有点头疼。 我有一个名为strings.json的json文件,如下所示: 我现在想读取json文件。我发现了以下这些语句,但是不起作用: 控制台上显示的错误是这样的: 已编辑 从更改为 并得到了这个: 问题答案: 该方法(“ load”中没有“ s”)可以直接读取文件: 您正在使用方法,该方法仅用于 字符串 参数。 编辑:新消

  • 我有一个名为Strings.json的json文件,如下所示: 我想读取json文件,现在仅此而已。我发现了这些说法,但它不起作用: 控制台上显示的错误是: 已编辑 从更改为 得到了这个:

  • 一个看起来简单、容易的陈述却让我犯了一些错误。 我有一个名为strings.json的JSON文件,如下所示: 我想阅读JSON文件,目前仅此而已。我发现了这些语句,但它不起作用: 控制台上显示的错误如下: 如果我使用<code>json。加载而不是<code>json。加载,我得到以下错误:

  • 问题内容: 我开发了一个应用程序,可以从用户选择的文件夹中读取文件。它显示每个文件中有多少行代码。我只希望Java文件显示在文件选择器(扩展名为.java的文件)中。下面是我的代码: 我也进行了编辑,但是仍然无法正常工作,请告知请告知如何仅读取扩展名为.java的文件,换句话说,请仅从文件夹中读取java文件,请告知 问题答案: 您需要一个FilenameFilter。这应该为您工作:

  • 问题内容: 我有点头疼,只是因为一个简单,易于表达的陈述使我的脸上有些错误。 我有一个名为的文件,如下所示: 我现在想读取文件。我发现了以下这些语句,但是不起作用: 控制台上显示的错误是这样的: 已编辑 从更改为 并得到了: 问题答案: 该方法( 中没有 )可以直接读取文件: 你正在使用方法,该方法仅用于字符串参数。 编辑:新消息是一个完全不同的问题。在这种情况下,该文件中存在一些无效的。为此,我

  • 问题内容: 我正在使用AJAX从文本文件中读取。我如何只读取第一行? 问题答案: 此代码应帮助您从远程文本文件中读取: