问题描述
我有一个 json 加载的字典列表,代表一个相对较小的数据库(约 1k 个文档),用于只读操作。
我知道 Python 原生数据结构本质上是线程安全的,但是如果我创建自己的类来查询这些数据呢?
为了提供一点上下文,我的目标是通过点表示法(使用 SimpleNamespace
)启用对 dict 键的访问,并实现一组有用的方法来查询数据。例如:
import json
from types import SimpleNamespace
data = json.load(open("my_file"))
data = {f"_{n}":d for n,d in enumerate(data)} # converting the list in a dict indexed by subsequent ints
class MyData:
# unpacking the dictionary and the nested ones into SimpleNamespace
my_data = SimpleNamespace(
**{k: v if not isinstance(v,dict) else SimpleNamespace(**v) for k,v in data.items()}
)
@classmethod
def distinct(cls,attr):
# method similar to collection.distinct() of mongoDB client
在大量并发访问(涉及我的类的数千个异步调用)的情况下,我应该期待什么?所有访问都是为了阅读目的,所以不应该担心竞争条件。
为了完整起见,我不使用实际数据库的原因是我想将服务器-客户端通信减少到最低限度,因为我还必须处理受所有 CRUD 约束的其他数据库操作。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)