Составить регулярное выражение с помощью re
Помогите составить регулярное выражение с помощью re python3.
Исходные данные:
"isAutoOpen": false
"stayOnPage": true,
"vacancyId": "36627904",
"employerId": "1160188",
"isWithoutTest": true,
"ignoreResponseCheck": true,
Мне необходимо циклом забирать значения ключа vacancyId, то есть 36627904.
Поэтому шаблон должен быть универсальным.
Ответы (2 шт):
Автор решения: nomnoms12
→ Ссылка
Регулярное выражение: "vacancyId": "(\d+)".
Пример:
import re
def main():
s = '"isAutoOpen": false "stayOnPage": true, "vacancyId": "36627904", "employerId": "1160188", "isWithoutTest": true, "ignoreResponseCheck": true,'
r = re.findall(r'"vacancyId": "(\d+)"', s)
for x in r:
print(x)
if __name__ == '__main__':
main()
stdout:
36627904
Автор решения: nomnoms12
→ Ссылка
Исходные данные можно превратить в валидный JSON, если:
- Добавить фигурные скобки
- Добавить запятую после значения ключа
isAutoOpen - Убрать завершающую запятую
Тогда можно будет использовать модуль json для парсинга.
Пример:
import json
def main():
s = '{"isAutoOpen": false, "stayOnPage": true, "vacancyId": "36627904", "employerId": "1160188", "isWithoutTest": true, "ignoreResponseCheck": true}'
d = json.loads(s)
print(d['vacancyId'])
if __name__ == '__main__':
main()
stdout:
36627904