如何在循环中的python中的代码中添加日志信息 [英] How to add log info in the Code in python in the loop
问题描述
-
下面是字典
Below is the dictionary
有两个ID,我需要生成
There are two ids, I need to generat
提取完第一个id后,我需要获取一条信息,说明第一个id(100)已完成
Once extract of completion of first id i need to get an info saying First id(100) is completed
提取完第二个id之后,我需要获取一条信息,说明第二个id(101)已完成
Once extract of completion of second id i need to get an info saying second id(101) is completed
logger.info('提取ID'+ str(id)+'已完成')
logger.info('提取ID'+ + str(id)+'已完成')
预期
test = [{"id":"100","name":"A",
"Business":[{"id":"7","name":"Enterprise"},
{"id":"8","name":"Customer"}],
"policies":[{"id":"332","name":"Second division","parent":"Marketing"},
{"id":"3323","name":"First division","parent":"Marketing"}]},
{"id":"101","name":"B",
"Business":[{"id":"7","name":"Enterprise"},
{"id":"8","name":"Customer"}],
"policies":[{"id":"332","name":"Second division","parent":"Marketing"},
{"id":"3323","name":"First division","parent":"Marketing"}]}]
代码
def do_the_thing(lst):
resp = []
parents_mapper = {
'Marketing': 'level1',
'Advertising': 'level2'
}
for el in lst:
d = {
'id': el['id'],
'name': el['name'],
'Business': [],
'level1': [],
'level2': []
}
for business in el.get('Business', []):
business_name = business.get('name')
if business_name:
d['Business'].append(business_name)
for policy in el.get('policies', []):
policy_parent = policy.get('parent')
parent_found = parents_mapper.get(policy_parent)
policy_name = policy.get('name')
if parent_found and policy_name:
d[parent_found].append(policy_name)
resp.append(d)
return resp
#def lambda_handler(event,context):
if __name__ == '__main__':
import pprint
pp = pprint.PrettyPrinter(4)
pp.pprint(do_the_thing(test))
输出2个ID
[
{
"id": "100",
"name": "A",
"Business": ["Enterprise", "Customer"],
"level1": ['Second division', 'First division'],
"level2": [None ]
},
{
"id": "101",
"name": "B",
"Business": ["Enterprise", "Customer"],
"level1": ['Second division', 'First division'],
"level2": [None ]
}
]
第一个ID完成,然后我将获得提取ID'100已完成'
第二个ID已完成,然后我将获得提取ID'10
已完成'`
First id completed then i will get extraction id' 100 is completed'
second id completed then i will get extraction id' 10
is completed'`
**预期out_one
** Expected out_one
extraction id' 100 is completed'
extraction id' 101 is completed'
**预期out_two
** Expected out_two
extraction Business' 100 is completed'
extraction policy' 100 is completed'
extraction level1' 100 is completed'
extraction Business' 101 is completed'
extraction policy' 101 is completed'
extraction level1' 101 is completed'
推荐答案
以下代码:
import logging
logging.basicConfig(format='%(message)s', filename='output.log',level=logging.INFO)
test = [{"id":"100","name":"A",
"Business":[{"id":"7","name":"Enterprise"},
{"id":"8","name":"Customer"}],
"policies":[{"id":"332","name":"Second division","parent":"Marketing"},
{"id":"3323","name":"First division","parent":"Marketing"}]},
{"id":"101","name":"B",
"Business":[{"id":"7","name":"Enterprise"},
{"id":"8","name":"Customer"}],
"policies":[{"id":"332","name":"Second division","parent":"Marketing"},
{"id":"3323","name":"First division","parent":"Marketing"}]}]
def do_the_thing(lst):
resp = []
parents_mapper = {
'Marketing': 'level1',
'Advertising': 'level2'
}
for el in lst:
d = {
'id': el['id'],
'name': el['name'],
'Business': [],
'level1': [],
'level2': []
}
for business in el.get('Business', []):
business_name = business.get('name')
if business_name:
d['Business'].append(business_name)
if business:
logging.info(f"extraction Business' {d['id']} is completed'")
parents = []
for policy in el.get('policies', []):
policy_parent = policy.get('parent')
parent_found = parents_mapper.get(policy_parent)
policy_name = policy.get('name')
if parent_found and policy_name:
d[parent_found].append(policy_name)
if parent_found not in parents:
logging.info(f"extraction {parent_found}' {d['id']} is completed'")
parents.append(parent_found)
if policy:
logging.info(f"extraction policy' {d['id']} is completed'")
logging.info(f"extraction id' {d['id']} is completed'")
resp.append(d)
return resp
#def lambda_handler(event,context):
if __name__ == '__main__':
import pprint
pp = pprint.PrettyPrinter(4)
print("Behold Magic in Progress...")
the_thing_result = do_the_thing(test)
print("\nThe parsed dictionary:")
pp.pprint(the_thing_result)
具有两个输出:
输出:
Behold Magic in Progress...
The parsed dictionary:
[ { 'Business': ['Enterprise', 'Customer'],
'id': '100',
'level1': ['Second division', 'First division'],
'level2': [],
'name': 'A'},
{ 'Business': ['Enterprise', 'Customer'],
'id': '101',
'level1': ['Second division', 'First division'],
'level2': [],
'name': 'B'}]
登录"output.log":
Log in 'output.log':
extraction Business' 100 is completed'
extraction level1' 100 is completed'
extraction policy' 100 is completed'
extraction id' 100 is completed'
extraction Business' 101 is completed'
extraction level1' 101 is completed'
extraction policy' 101 is completed'
extraction id' 101 is completed'
这篇关于如何在循环中的python中的代码中添加日志信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!