如何根据时间更新python字典?

How to update python dictionary based on time?

所以我在 python 中遇到的问题是,每次我连接到我的 jira 帐户时,我似乎无法保留我以前的 python 字典值。

逻辑似乎在 for 循环和我分配空字典时失败。除此之外,我确实尝试通过使用几个条件来解决这个问题,但这些方法都没有奏效。

这就是我的意思。

当前代码:

import os
import pandas as pd
from jira.client import JIRA
from datetime import datetime
jira_token = os.getenv(<jira_personal_tokne>)
jira_link = os.getenv(<jira_url>)
jira_server = {"server": jira_link}
auth_jira = JIRA(options=jira_server, token_auth=jira_token)

proj = auth_jira.search_issues("project=<my_project> and 'epic link'='<epic_link_of_interest>'")

plmpgm_dict= {}
for i in proj:
   formatted_date = datetime.strptime(i.fields.updated, '%y-%m-%dT%H:%M:%S.%f%z').strftime("%Y-%m-%dT%H:%M:%S")
   inner_dict = {}
   inner_dict["summary"]=i.fields.summary
   inner_dict["description"] = i.fields.description
   inner_dict["last_retrieved"] = formatted_date
   plmpgm_dict[i.key] inner_dict
   if i.key == "<jira issue>":
      print(plmpgm_dict)

我得到的输出:

{'<jira issue>':{
    'summary':'summary_values',
    'description: 'description values',
    'last_retrieved':'2022-03-11T19:44:15'
    }
}

输出我want/expected:

{'<jira issue>':{
    'summary':'summary_values',
    'description: 'description values',
    'last_retrieved':'2022-03-11T18:44:15'
    },{
    'summary':'old summary_values',
    'description: ' old description values',
    'last_retrieved':'2022-03-11T18:50:15'
    }
}

现在,我想知道是否有一种方法可以存储我以前的 python 字典键值对,而不是在我使用python?

实际上,您的问题既不是 Jira 也不是 Python。

当你运行一个程序时,所有变量都从零开始。它是编程逻辑。您需要保存以前的值,所以您只需要将数据保存在某个目的地(文件系统、数据库等)

想法

所以,我们需要保存数据。它是一个 Python dict 所以我们可以将它保存为 JSON 字符串。现在,假设我们将它保存在系统中的 JSON 文件中。当你 运行 程序时,你应该将这个 JSON 文件读入 plmpgm_dict 变量。

您可以使用以下代码进行该操作:

import json

def dict_to_json_file(some_dict, file_name):
    fp = open(file_name, 'w+)
    fp.write(json.dumps(some_dict))
    fp.close()

def json_file_to_dict(file_name):
    fp = open(file_name, 'r+)
    some_dict = json.loads(fp.read())
    fp.close()
    return some_dict

算法

for 循环之前,您需要使用 plmpgm_dict = json_file_to_dict('dump.json').

从文件(如果存在)读入 plmpgm_dict

for 循环之后,在代码的末尾,您需要将 dict 转储到 JSON 文件,如 dict_to_json_file(plmpgm_dict, 'dump.json')