目前,对一个文件进行昂贵的解析会生成约400个键值对的字典,而且很少更新.以前有一个函数解析文件,用字典语法(即dict = {'Adam': 'Room 430', 'Bob': 'Room 404'})等将其写入文本文件,并将其复制粘贴到另一个函数中,该函数的唯一目的是返回解析后的字典.

因此,在我使用该字典的每个文件中,我都会导入该函数,并将其分配给一个变量,即现在的字典.想知道是否有一种更优雅的方法可以做到这一点,它不需要显式地复制和粘贴代码?使用数据库似乎是不必要的,而文本文件让我在将其添加到函数之前可以查看解析是否正确.但我愿意接受建议.

推荐答案

为什么不将其转储到JSON文件中,然后从需要的位置加载它呢?

import json

with open('my_dict.json', 'w') as f:
    json.dump(my_dict, f)

# elsewhere...

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

从JSON加载是相当有效的.

另一种 Select 是使用pickle,但与JSON不同的是,它生成的文件不是人类可读的,因此失go 了旧方法中您喜欢的可视验证.

Database相关问答推荐

优雅地处理 EJB/JPA 环境中的约束冲突?

在sql server中拆分字符串

tzname字段/时区标识符名称的最大长度

有没有办法为 2 个具有不同包名称的应用程序提供 1 个 Firebase 数据库?

Objective-C中是否有类似于LINQ的东西?

如何将正在使用的数据库复制到django中的其他数据库?

Java中基于文件的数据库

Spring Boot:如何使用多个模式并在运行时动态 Select 使用哪一个

SQL Server 2008如何同步不同服务器中的数据库?

Postgres - 如何返回缺失数据计数为 0 的行?

自动增量唯一标识符

在数据库中使用数组是不好的设计吗?

如何在 PDO 中获取数据库名称?

如何从 Django 中的 sql 模式生成数据模型?

是什么导致pyodbcunable to connect to data source?

哪个提供更好的性能一个大连接或多个查询?

如何使用 JPA 注释创建连接表?

在连接表中,Rails 缺少组合键的最佳解决方法是什么?

为什么实体框架连接需要元数据属性?

使用 Sinatra 时与数据库对话的最佳方式是什么?