maxpoitn2point
@maxpoitn2point
Как всегда, в своем репертуаре

Как вытащить нужные данные из текста?

Пишу скрипт для автоматизации проверки сроков действия ключей УТМ (ЕГАИС)
проблема в том, что бы вытащить данные из ответа УТМ

Текст

[
[
  Version: V3
  Subject: CN=Фамилия Имя Отчество, SURNAME=Фамилия, GIVENNAME=Имя Отчество, C=RU, ST=23 Регион, L=Город, STREET=ул. улица д. 00, OID.0.0.000.000.0=#00000000000000000000000000, OID.0.0.000.000.0=#00000000000000000000000000, EMAILADDRESS=email@gmail.com, OID.0.0.000.000.0=#00000000000000000000000000
  Signature Algorithm: 0.0.000.0.0.0.0.0, OID = 0.0.000.0.0.0.0.0

  ...не нужные данные...

  Validity: [From: Thu Oct 10 09:45:58 MSK 2019,
               To: Sat Oct 10 09:55:58 MSK 2020]
  Issuer: CN="ООО \"РОГА И КОПЫТА\"", O="ООО \"РОГА И КОПЫТА\"", STREET=ул. улица д. 00, L=Город, ST=23 Регион, C=RU, OID.0.0.000.000.0=#00000000000000000000000000, OID.0.0.000.000.0=#00000000000000000000000000, EMAILADDRESS=email@gmail.com
  SerialNumber: [    00000000 00000000 0000]

...не нужные данные...

]
]


хочу вытащить CN, SURNAME, GIVENNAME, ST, L, STREET у физ лица и сроки действия ключа
помогите пожалуйста с этим.
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
text = '''
  Version: V3
  Subject: CN=Фамилия Имя Отчество, SURNAME=Фамилия, GIVENNAME=Имя Отчество, C=RU, ST=23 Регион, L=Город, STREET=ул. улица д. 00, OID.0.0.000.000.0=#00000000000000000000000000, OID.0.0.000.000.0=#00000000000000000000000000, EMAILADDRESS=email@gmail.com, OID.0.0.000.000.0=#00000000000000000000000000
  Signature Algorithm: 0.0.000.0.0.0.0.0, OID = 0.0.000.0.0.0.0.0

  ...не нужные данные...

  Validity: [From: Thu Oct 10 09:45:58 MSK 2019,
               To: Sat Oct 10 09:55:58 MSK 2020]
  Issuer: CN="ООО \"РОГА И КОПЫТА\"", O="ООО \"РОГА И КОПЫТА\"", STREET=ул. улица д. 00, L=Город, ST=23 Регион, C=RU, OID.0.0.000.000.0=#00000000000000000000000000, OID.0.0.000.000.0=#00000000000000000000000000, EMAILADDRESS=email@gmail.com
  SerialNumber: [    00000000 00000000 0000]

...не нужные данные...
'''

for line in text.split('\n'):
    if 'Subject' in line:
        a = [x.split('=') for x in line.split(':')[1].split(',')]
        data = dict(zip([x[0].strip() for x in a], [x[1].strip() for x in a]))

print('CN> ', data['CN'])
print('SURNAME> ', data['SURNAME'])


CN> Фамилия Имя Отчество
SURNAME> Фамилия
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы