Я пытаюсь заменить появление слова, которое происходит только после другого слова в текстовой строке JSON. Я пытаюсь использовать регулярные выражения для этого, но использование только функций Python будет в порядке со мной.В Python, соответствующем первому вхождению слова ПОСЛЕ появления другого слова
Так что я хочу, чтобы найти первое вхождение "LEVEL1"
: (с кавычками), а затем найти первое вхождение "session_transition":
, а затем найти то, что строка в кавычках после "session_transition":
, а затем заменить его на другую строку. Вот строка я работаю с:
"BASELINE": {
"audio_volume": 150,
"cry_threshold": 70,
"cry_transition": "LEVEL1",
"expected_volume": 63,
"led_color": "BLUE",
"led_blink_speed": "NONE",
"motor_amplitude": 0.97,
"motor_frequency": 0.5,
"power_transition": "SUSPENDED",
"seconds_to_ignore_cry": 10.0,
"seconds_in_state": -1.0,
"session_transition": "ONLINE",
"track": "RoR",
"timer_transition": null,
"active_session" : 1
},
"LEVEL1": {
"audio_volume": 300,
"cry_threshold": 75,
"expected_volume": 63,
"cry_transition": "LEVEL2",
"led_color": "PURPLE",
"led_blink_speed": "NONE",
"motor_amplitude": 0.76,
"motor_frequency": 1.20,
"power_transition": "SUSPENDED",
"seconds_to_ignore_cry": 10.0,
"seconds_in_state": 480.0,
"session_transition": "ONLINE",
"track": "RoR",
"timer_transition": "BASELINE",
"active_session" : 1
}
}
Например, ниже я хочу найти и заменить "ONLINE"
под "LEVEL1":
->"session_transition":
в "OFFLINE"
так он будет выглядеть следующим образом:
"LEVEL1": {
"audio_volume": 300,
"cry_threshold": 75,
"expected_volume": 63,
"cry_transition": "LEVEL2",
"led_color": "PURPLE",
"led_blink_speed": "NONE",
"motor_amplitude": 0.76,
"motor_frequency": 1.20,
"power_transition": "SUSPENDED",
"seconds_to_ignore_cry": 10.0,
"seconds_in_state": 480.0,
"session_transition": "OFFLINE",
"track": "RoR",
"timer_transition": "BASELINE",
"active_session" : 1
}
До сих пор у меня есть r"(?<=\"LEVEL1\"\:).*
, чтобы соответствовать первому вступлению, но не знаю, как продолжить дальше.
Почему вы пытаетесь сделать это с помощью регулярного выражения? Разберите его и обработайте словарь. – jonrsharpe
@jonrsharpe: Мне нужна строка, чтобы оставаться строкой, а не стать dict, если это то, что вы имеете в виду. – RebelAlliance
Почему? Почему вы не можете вернуть его обратно в строку? Какую * актуальную проблему вы пытаетесь решить? – jonrsharpe