如何根据时间更新python字典



所以我在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'
}
}

我想要/期望的输出

{'<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时用新的字典键值对替换?

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

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

想法

因此,我们需要保存数据。它是一个Pythondict,因此我们可以将其保存为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_to_json_file(plmpgm_dict, 'dump.json')的东西将dict转储到JSON文件中

最新更新