Vai al contenuto
jsonbeautifiers
Italiano
Python Verificato eseguendo il parser su CPython 3.14.3.

Expecting property name enclosed in double quotes: line L column C (char N)

Il parser si trova dentro un oggetto e si aspettava una chiave tra virgolette doppie. Ha trovato altro: un apice singolo, una parola nuda, oppure, nelle vecchie versioni di Python, una virgola finale. JSON richiede che le chiavi siano stringhe tra virgolette doppie, senza eccezioni per le chiavi che sembrano identificatori.

Incolla il tuo JSON e vedi esattamente dove si rompe

Input

Nulla di ciò che incolli lascia il tuo browser. L’allowlist connect-src ne fa una garanzia del browser anziché una promessa. Verificalo tu stesso

Che cosa lo provoca davvero

In ordine di quanto spesso ciascuno si rivela essere la risposta.

  1. 01 Un dict Python stampato anziché serializzato

    str(d) e print(d) producono apici singoli. È di gran lunga la fonte più comune di questo errore.

    Si rompe

    data = str({'a': 1})
    json.loads(data)

    Funziona

    data = json.dumps({'a': 1})
    json.loads(data)
  2. 02 La gestione delle virgolette della AWS o Azure CLI su Windows

    PowerShell e cmd trattano le virgolette in modo diverso da una shell POSIX, quindi gli argomenti JSON scritti inline arrivano alla CLI senza le virgolette doppie. La soluzione affidabile è mettere il JSON in un file e passare file://params.json invece di combattere con la shell.

    Si rompe

    aws dynamodb query --key-condition-expression "{\"id\": ...}"

    Funziona

    aws dynamodb query --cli-input-json file://params.json
  3. 03 Una virgola finale, su Python 3.12 e precedenti

    Prima della 3.13 una virgola finale produceva questo messaggio. Dalla 3.13 in poi ne ha uno suo: «Illegal trailing comma before end of object». Se stai seguendo una guida che non parla di versioni, è per questo che potrebbe non corrispondere a ciò che vedi.

Lo stesso errore in altri runtime

Il problema di fondo è identico; cambia solo la formulazione. Se un collega segnala uno di questi messaggi, sta guardando esattamente la stessa cosa che vedi tu.

JavaScript (V8) Expected property name or '}' in JSON at position 1 (line 1 column 2)

Domande frequenti

Posso analizzare il repr di un dict Python senza riscriverlo?
ast.literal_eval lo gestisce in sicurezza: valuta la sintassi literal di Python senza eseguire codice arbitrario, a differenza di eval. Poi passa il risultato a json.dumps se ti serve JSON vero.

Risolvilo adesso

Incolla il payload nello strumento qui sopra, oppure vai direttamente a quello creato per questo compito.

Converti gli apici singoli in JSON