Попытка пропустить действие, когда результат регулярного выражения возвращается как 'Нет':
for idx, val in enumerate(S):
num = re.search('(?<=Number\': )[^,]+', val)
name = re.search('(?<=Name\': )[^,]+', val)
if num and name:
S_C.append(['S' + num.group(0).strip('\''), name.group(0).strip('\'')])
print('yes')
Результат регулярного выражения для моего кода действительно возвращает не ненулевые значения, но If num and name:
, похоже, не Работа. If num is not None
Включенный список:
S = [ {'IsMissing': 'false', 'Name': 'Trans2', 'Number': '2', 'ProgrammingLanguage': 'LAD'}~FlgNet {}~Parts {}~Access {'Scope': 'LocalVariable', 'UId': '21'}~Symbol {}~Component {'Name': 'DATA'}~Component {'Name': 'sOFF'}~Access {'Scope': 'LocalVariable', 'UId': '22'}~Symbol {}~Component {'Name': 'Me'}~Component {'Name': 'SEQ11'}~Component {'Name': 'mCMPL'}~Part {'Name': 'Contact', 'UId': '23'}~Part {'Name': 'Contact', 'UId': '24'}~Part {'Name': 'O', 'UId': '25'}~TemplateValue {'Name': 'Card', 'Type': 'Cardinality'}~Part {'Name': 'TrCoil', 'UId': '26'}~Wires {}~Wire {'UId': '27'}~Powerrail {}~NameCon {'UId': '23', 'Name': 'in'}~NameCon {'UId': '24', 'Name': 'in'}~Wire {'UId': '28'}~IdentCon {'UId': '21'}~NameCon {'UId': '23', 'Name': 'operand'}~Wire {'UId': '29'}~NameCon {'UId': '23', 'Name': 'out'}~NameCon {'UId': '25', 'Name': 'in1'}~Wire {'UId': '30'}~IdentCon {'UId': '22'}~NameCon {'UId': '24', 'Name': 'operand'}~Wire {'UId': '31'}~NameCon {'UId': '24', 'Name': 'out'}~NameCon {'UId': '25', 'Name': 'in2'}~Wire {'UId': '32'}~NameCon {'UId': '25', 'Name': 'out'}~NameCon {'UId': '26', 'Name': 'in'}~]
S_C = [] # empty for appending
Я использую [Python 3.7] и [PycCharm CE]. ] с [повторный модуль]