首页 > 解决方案 > 如果标签中不存在元素,则打印“”-python编程

问题描述

s = '''
:20:name
:21A:Address
:22B:phone
:57A:/256789422254
TEST VALUE
:59B:/REST_MA
LINE1
:59C:TEST
'''

编写的代码:

    if ':57A:' in s:
        a, b = s[s.index(':57A:') - 1 :].strip().split("\n")[:2]
        a = a.split(':')[2]
        print("value of A:" + a[1:7])
        print("value of B:" + b)
    else:
        print('not found')

结果显示:

A 的值:256789
B 的值:TEST VALUE

如果 :57A: 没有两行 例如:

s = '''
:20:name
:21A:Address
:22B:phone
:57A:/256789422254
:59B:/REST_MA
LINE1
:59C:TEST
'''

然后我想按预期输出:
A的值:256789
B的值:''

实际:
A 的值:256789
的值 B::59B:/REST_MA

因为 A 和 B 的值应该来自:57A:但从输出需要:59B:

标签: python

解决方案


:检查以in b开头的标签

if ':57A:' in s:
    a, b = s[s.index(':57A:') - 1 :].strip().split("\n")[:2]
    a = a.split(':')[2]
    print("value of A:" + a[1:7])
    if b.startswith(':'):  # add this check
        b = '' 
    print("value of B:" + b)
else:
    print('not found')

推荐阅读