JSONテキスト文字列内の別の単語の後にのみ出現する単語の出現を置き換えようとしています。私はこれを行うために正規表現を使用するのに苦労してきましたが、ちょうどPython関数を使用することは私にとってうまくいくでしょう。そして、その後、"session_transition":
の最初の発生を見つける、(引用符で)"session_transition":
後に引用符で囲まれているものは何でも文字列を見つけ、その後、別の文字列に置き換えますPythonでは、別の単語の出現後に単語の最初の出現を照合する
だから私が欲しいのは"LEVEL1"
の最初の発生を見つけることです。ここで私が働いている文字列です。たとえば
"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
}
}
は、私が見つけて"LEVEL1":
下"ONLINE"
を交換したい以下 - それは次のようになります"OFFLINE"
へ>"session_transition":
:
"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