Problem mit Escapezeichen beim Definieren eines regulären Ausdrucks in einer JSON-Zeichenfolge [Duplikat]Python

Python-Programme
Anonymous
 Problem mit Escapezeichen beim Definieren eines regulären Ausdrucks in einer JSON-Zeichenfolge [Duplikat]

Post by Anonymous »

Ich versuche, Werte für colorName aus den folgenden Zeichenfolgen zu extrahieren, die sich in einer HTML-Seite befinden.

Code: Select all

\\"colorName\\":\\"GLOSS REDSKY SHDWSIL WHT IMPASTO\\"
\\"colorName\\":\\"GLOSS PREMIUM FJORD METALLIC / WHITE METALLIC SILVER\\"


Der HTML-Code wird in „response.text“ mit Python Scrapy zurückgegeben. Ich möchte GLOSS REDSKY SHDWSIL WHT IMPASTO und GLOSS PREMIUM FJORD METALLIC / WHITE METALLIC SILVER aus dem Code-Snippet mit Regex extrahieren.

Code: Select all

re.findall('\\\\"colorName\\\\":\\\\"(.*?)\\\\"', response.text)
Diese Codezeile funktioniert gut, aber als ich versucht habe, den regulären Ausdruck in einen JSON-String wie diesen einzufügen:

Code: Select all

{
"selector": "\\\\"colorName\\\\":\\\\"(.*?)\\\\""
}
Ich habe die folgenden Fehler erhalten:

Code: Select all

Error: Parse error on line 4:
...  "selector": "\\\\"colorName\\\\":\\\\"
-----------------------^
Expecting 'EOF', '}', ':', ',', ']', got 'undefined'
PyCharm schlug die folgende Bearbeitung der JSON-Zeichenfolge vor, die keinen Fehler auslöste:

Code: Select all

{
"selector": "\\\\\\\\\"colorName\\\\\\\\\":\\\\\\\\\"(.*?)\\\\\\\\\""
}
Ich kann nicht herausfinden, warum ich so viele zusätzliche Backslashes in die JSON-Zeichenfolge einfügen muss, um es richtig zu machen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post