Wie entferne ich Text in einem scheinbar JSON -formatierten Text, ohne JSON zu verwenden?
Posted: 17 Feb 2025, 10:34
Ich möchte vermeiden, JSON zu verwenden, da er einen Albtraum für eine einfache Aufgabe erstellt, bei der ich die Eigenschaft der Knoten mit einem Text mit einem bestimmten Format ersetzen wollte, ohne die Formatierung der gesamten Originaldatei zu beeinflussen (welche ist riesig, aber hier habe ich nur ein einfaches Beispiel). Aber leider wirkt sich dies mit JSON auch auf die Formatierung anderer Eigenschaften aus. Ich habe die Lösung in diesem Thread ausprobiert, aber es wird zu einem Albtraum, da ich buchstäblich alles einwickeln muss, was für eine "einfache" Aufgabe wie diese keinen Sinn ergibt. Nach stundenlangen Schlagen im Busch entschloss ich mich schließlich, den einfachen Ansatz der Verwendung einfacher Textersatz zu verfolgen. Das Problem ist, dass selbst einfache Operationen, wie der Versuch, Text aus diesem Beispiel zu entfernen, nicht möglich sind? Wie kann ich in diesem Beispiel den Inhalt von Knoten entfernen? Ich weiß, dass dies leicht mit Bash -Skript erreicht werden kann, aber warum nicht mit Python?
Code: Select all
import re
text = """
{
"m": {
"information": {
"authors": "S",
"name": "B"
},
"nodes": [
["id", "posX", "posY", "posZ"],
{"d": 1.5},
],
"some_other_prop": {
"b": "c"
}
}
}
"""
< /code>
Ich möchte den Inhalt in "Knoten" entfernen, damit ich mit: < /p>
übrig bin: < /p>
"m": {
"information": {
"authors": "S",
"name": "B"
},
"nodes": [
],
"some_other_prop": {
"b": "c"
}
}
< /code>
Ich habe Folgendes ausprobiert, aber es funktioniert nicht. Warum? < /P>
pattern = r'("nodes":\s*)\[.*?\]'
# cleaned_text = re.sub(pattern, r'\1[]', text, flags=re.DOTALL)
cleaned_text = re.sub(r'"nodes": \[.*?\]', '"nodes": []', text, flags=re.DOTALL)
print(cleaned_text)