簡體   English   中英

如何使用 Python 在緩存中存儲來自 JSON 文件的信息?

[英]How to store information from JSON files in cache using Python?

我有一個 Python 腳本,每 x 分鍾調用一次來解析 JSON 文件。

JSON 包含帶有 ID 的數據點。 我希望能夠查看在之前運行腳本時是否遇到了 ID,以便我可以將數據點中包含的信息附加到具有相同 ID 的舊數據中。

為了做到這一點,我想將數據作為鍵值對存儲在緩存中。 在這種情況下,鍵是 ID,值是 JSON 中包含的其余信息。 我怎樣才能在 Python 中做到這一點?

我認為Ring可以幫助您解決問題。 https://ring-cache.readthedocs.io/en/latest/

當您的函數如下所示時:

def your_function(data_id):
    return ...

Ring的適應性是這樣的:

import ring

storage = {}

@ring.dict(storage, expire=60)  # 60 seconds cache in `storage` dict
def your_function(data_id):
    return ...

它們將存儲在storage字典中(除非您終止該進程)。 如果您想在殺死進程后保留緩存, @ring.memcache@ring.redis會幫助您。

我會使用 sqlite db,但您可以輕松地使用另一個 json 文件來保持遇到的 ID 的運行記錄。 我認為您不會輕松地將它保存在內存中並在 python 會話之間進行訪問。

按照慣例,在這種情況下您將使用的數據結構是哈希映射/哈希表,其中 ID 可以是您的鍵,值可以是序列化數據的哈希值-

看到 python 中的字典實際上是使用哈希表實現的,問題是否真的值得付出努力,而不是每次都解析整個事情並重建你檢索的對象,這取決於你到底想做什么與數據以及它有多少數據。

如果您正在尋找基於鍵值的存儲,要為您的 Python 腳本添加持久性,那么 no-sql 方法(例如mongoDB )應該是一個不錯的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM