[英]How to increase the counter when a same dictionary key value encountered
DocumentCode
which for now is BS, F16, SS
which can be different.我正在计算不同DocumentCode
的出现,目前它们是BS, F16, SS
,它们可能不同。ldct_input_body = {
"ContextKey": "Mr.Dave",
"Input": [
{
"DocumentCode": "BS",
"ObjectFormat": "pdf"
},
{
"DocumentCode": "BS",
"ObjectFormat": "pdf"
},
{
"DocumentCode": "SS",
"ObjectFormat": "pdf"
},
{
"DocumentCode": "F16",
"ObjectFormat": "pdf"
}
]
}
DocumentCode
like below所以我通过识别下面的DocumentCode
创建一个不同的字典ldct_document_code = dict()
ldct_document_code['ObjectEntries'] = []
for lstr_multiple_input_object in ldct_input_body["Input"]:
ldct_document_code['ObjectEntries'].append(lstr_multiple_input_object['DocumentCode'])
{
"ObjectEntries": [
"BS",
"BS",
"SS",
"F16"
]
}
DocumentCode
are present现在,我希望根据存在多少相同DocumentCode
的输入来增加计数for lstr_multiple_input_object in ldct_input_body["Input"]:
if lstr_multiple_input_object["DocumentCode"] == "BS":
lint_bank_statement_count += 1
lint_total_no_of_object += 1
elif lstr_multiple_input_object["DocumentCode"] == "F16":
lint_form_16_count += 1
lint_total_no_of_object += 1
elif lstr_multiple_input_object["DocumentCode"] == "SS":
lint_salary_slip_count += 1
lint_total_no_of_object += 1
{
"ObjectEntries": [
"BS": 2,
"SS": 1,
"F16": 1
]
}
See if this simple code snippet solves your purpose:看看这个简单的代码片段是否能解决您的目的:
ldct_input_body = {
"ContextKey": "Mr.Dave",
"Input": [
{
"DocumentCode": "BS",
"ObjectFormat": "pdf"
},
{
"DocumentCode": "BS",
"ObjectFormat": "pdf"
},
{
"DocumentCode": "SS",
"ObjectFormat": "pdf"
},
{
"DocumentCode": "F16",
"ObjectFormat": "pdf"
}
]
}
ldct_document_code = {}
output_dict = {}
for x in ldct_input_body['Input']:
for k, v in x.items():
if v == "pdf": continue
if output_dict.get(v, None) is None:
output_dict[v] = 1
else:
output_dict[v] = output_dict[v] + 1
ldct_document_code['ObjectEntries'] = output_dict
print(ldct_document_code)
OUTPUT: OUTPUT:
{'ObjectEntries': {'BS': 2, 'SS': 1, 'F16': 1}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.