У меня есть много строк, как показано ниже в файле:Regex построчно над большой строкой
{"first_name":"John","last_name":"Smith","age":30}
{"first_name":"Tim","last_name":"Johnson","age":34}
я впервые попробовал импортировать это в качестве словаря с модулем JSon, так что я мог бы просто напечатать значения ключи. Проблема заключается в том, что некоторые из строк не имеют правильной фигурной скобки или имеют другие проблемы, и поля не находятся в одном порядке в строке. Это предотвращает импорт.
Итак, теперь я пытаюсь сделать это с помощью регулярного выражения. У меня есть следующее:
fo = open("c:\\newgoodtestsample.txt", "r")
x = fo.read()
match1 = re.search('first_name"(.*?)"(.*?)"', x)
if match1:
print match1.group(2)
Это возвращает значение только для названия. Я хотел бы иметь возможность возвращать и другие поля. Это работало в регулярном выражении тестера, но я не могу заставить его работать в моем коде:
(first_name|last_name|age)"(.*?)"(.*?)"
Наконец, как только это понял, мне нужно прочитать каждую строку в файле (не только первый) и распечатать запрошенные данные регулярных выражений из каждой строки в файл. Я попытался вставить цикл for, но я продолжаю повторять первую строку снова и снова, поэтому я должен вставлять ее неправильно. Любая помощь приветствуется.
Не могли бы вы отредактировать свое сообщение примерами различных проблем, с которыми вы сталкиваетесь в файле? –
Проблемы, которые мешают мне импортировать его с помощью модуля JSON или ошибки при попытке выполнить нижнее регулярное выражение? – Christopher
Все, что отличается от двух первых строк, которые вы пишете, для просмотра разных случаев. Я прошу, потому что вы пишете «или имеете другие проблемы» в своем сообщении. –