РЕДАКТИРОВАТЬ: О, я вижу, что вы удалили тег Python сейчас
.
EDIT:
Это должно захватывать их, даже если в клавишах есть пробелы
(\"[^,]+?\")[\s]*:
.
В любом случае попробуйте их, чтобы увидеть, выводят ли они ключи (но помните, это для ключей, которые не содержат пробелов)
(\"[\S]+\")[\s]*:
.
(?:(?<=\")([\S]+?)\")[\s]*:
.
Я думаю, у @ "Kunal Mukherjee" есть лучшее решение.
Если вы хотите найти настоящие ключи, не зная заранее их названия, это может помочь ПРЕДОСТАВЛЯЕТСЯ, ЧТО ВЫ НЕ ОЖИДАЕТЕ КЛЮЧЕЙ, КОТОРЫЕ ИМЕЮТ ПРОСТРАНСТВА
>>> import re
>>> string = '''{"key1": {...}, "key2": [...], "key3": "some id", "key4": "irrelevant"}'''
#OUTPUT
>>> re.findall('(\"[^,]+?\")[\s]*:', string)
['"key1"', '"key2"', '"key3"', '"key4"']
#OUTPUT
>>> re.findall('(\"[\S]+?\")[\s]*:', string)
['"key1"', '"key2"', '"key3"', '"key4"']
#OUTPUT
>>> re.findall('(?:(?<=\")([\S]+?)\")[\s]*:', string)
['key1', 'key2', 'key3', 'key4']