首页 > 解决方案 > 我必须在 python 中找到带有服务 ID 的 pidlist 和 pmtpid

问题描述

文件内容:

serviceid=2251:tsid=6:orignetwid=99:access=clear:pids=3:clearpids=3:scrambledpids=0:packets=2315:bitrate=1745711:bitrate204=1894282:servtype=1:pmtpid=3251:pcrpid=5251:pidlist=3251,5251,6251

代码:

file = open('t5001.txt','r')

file1 = file.read()

file2 = file1.split(":")

Input = input("Enter The Service ID :- ")

for i in file2:

    if Input in i:

        print(i)

file.close()

我已经写了这段代码但没有得到答案我只是犯了一个愚蠢的错误没有得到任何人都可以帮助我

标签: pythondjangostringlistpython-requests

解决方案


更好的方法是:创建一个字典并保存所有项目,以便以后轻松检索它:

d = {}
for item in file.read().split(':'):
    key, value = item.split('=')
    d[key] = value

print(d)
# output
# {'serviceid': '2251', 'tsid': '6', 'orignetwid': '99', 'access': 'clear', 'pids': '3', 'clearpids': '3', 'scrambledpids': '0', 'packets': '2315', 'bitrate': '1745711', 'bitrate204': '1894282', 'servtype': '1', 'pmtpid': '3251', 'pcrpid': '5251', 'pidlist': '3251,5251,6251'}

如果要获取列表['3251','5251','6251']而不是纯字符串3251,5251,6251,请再添加一个条件检查:

d = {}
for item in file.read().split(':'):
    key, value = item.split('=')
    if ',' in value:
        d[key] = value.split(',')
    else:
        d[key] = value

print(d['pidlist'])
# output
# ['3251','5251','6251']

一旦你构建了字典d,事情就变得简单了:

if Input == d['serviceid']:
    print('pidlist: ', d['pidlist'])
    print('pmtpid: ', d['pmtpid'])

推荐阅读