python-3.x - 从ini中读取特定部分
问题描述
我有以下代码,我已经成功地从 ini 中读取了这些部分及其相应的值。现在我正在尝试输出仅满足某些条件的结果,但在获得正确的输出时遇到了一些问题,希望能得到一些想法,我该如何做到这一点
ini file -
[Issue_1]
close_major = some jql
#contains all problems with major priority
[Issue_2]
close_minor = some jql
#contains all problems with minor priority
config = configparser.ConfigParser()
config.read('test.ini')
result = dict()
for section in config.sections():
ticket_results = list()
result[section] = ticket_results
for desc, jql in config.items(section):
results = jira.search_issues(jql, startAt=0, maxResults=1000)
for i in results:
dateformat = '%Y-%m-%dT%H:%M:%S.%f+0000'
ticket_end_time = datetime.strptime(i.fields.customfield_xxx, dateformat)
ticket_start_time = datetime.strptime(i.fields.customfield_zzz, dateformat)
issue_time = ticket_end_time-ticket_start_time
issue_time_new = issue_time.total_seconds()
# Try to get the issues where issue time is less than 2days for Issue_1 and 5days for Issue_2
if(config.items('Issue_1')):
if issue_time_new < 172800:
ticket_results.append(i.key)
elif(config.items('Issue_2')):
if issue_time_new < 432000:
ticket_results.append(i.key)
print(result)
看起来我没有正确循环这个,假设正确的输出应该是 Issue_1 的 5 个结果和 Issue_2 的 4 个结果
我得到了 Issue_2 的 6 个结果,因为它正在从 Issue_1 而不是 Issue_2 读取 ini 部分
任何帮助将不胜感激
解决方案
找出我做错的地方 -
而不是使用 if(config.items('Issue_1')),在这种情况下应该只使用部分......所以代码应该看起来像这样......
if 'Issue_1' in section and issue_time_new < 172800:
ticket_results.append(i.key)
推荐阅读
- javascript - 使用 getAttribute() 方法获取“null”
- python - 检查字典键名,这是一个类的实例
- android - CAMERA_ROLL 权限返回被拒绝,即使用户授予它
- laravel - 更改 laravel 默认用户 ID
- pandas - 'DataFrame' 对象在 google colaboratory 中不可调用
- python - 如何在 Python 中使用 BeatifulSoup 获取页数
- python - Tensorflow - Train.py - ValueError: ('%s is not decorated with @add_arg_scope', ('nets.mobilenet.mobilenet', 'depth_multiplier'))
- php - Laravel 中带有数组名称的 html 表单元素的自定义错误消息
- c++ - 需要有关此 if 语句的帮助
- mysql - 发送 put 请求时,updatedAt 列未使用最新日期时间更新