Aller au contenu
jsonbeautifiers
Français
Python Vérifié en exécutant l’analyseur sur CPython 3.14.3.

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

L’analyseur se trouve dans un objet et attendait une clé entre guillemets doubles. Il a trouvé autre chose : une apostrophe, un mot nu, ou sur d’anciennes versions de Python une virgule finale. JSON exige que les clés soient des chaînes entre guillemets doubles, sans exception pour les clés qui ressemblent à des identifiants.

Collez votre JSON et voyez exactement où il casse

Entrée

Rien de ce que vous collez ne quitte votre navigateur. La liste d’autorisation connect-src en fait une garantie du navigateur plutôt qu’une promesse. Vérifiez-le vous-même

Ce qui le provoque réellement

Classés selon la fréquence à laquelle chacun se révèle être la réponse.

  1. 01 Un dict Python affiché plutôt que sérialisé

    str(d) et print(d) produisent des apostrophes. C’est de loin la source la plus fréquente de cette erreur.

    Casse

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

    Fonctionne

    data = json.dumps({'a': 1})
    json.loads(data)
  2. 02 Le traitement des guillemets par l’AWS ou l’Azure CLI sous Windows

    PowerShell et cmd gèrent les guillemets autrement qu’un shell POSIX : les arguments JSON en ligne arrivent donc à la CLI privés de leurs guillemets doubles. La correction fiable consiste à mettre le JSON dans un fichier et à passer file://params.json plutôt que de lutter contre le shell.

    Casse

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

    Fonctionne

    aws dynamodb query --cli-input-json file://params.json
  3. 03 Une virgule finale, sur Python 3.12 et antérieur

    Avant la 3.13, une virgule finale produisait ce message. À partir de la 3.13, elle a le sien : « Illegal trailing comma before end of object ». Si vous suivez un guide qui ne parle pas des versions, c’est pourquoi il peut ne pas correspondre à ce que vous voyez.

La même erreur dans d’autres environnements

Le problème de fond est identique ; seule la formulation change. Si un collègue signale l’un de ces messages, il regarde exactement la même chose que vous.

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

Questions fréquentes

Puis-je analyser le repr d’un dict Python sans le réécrire ?
ast.literal_eval s’en charge en toute sécurité : il évalue la syntaxe littérale Python sans exécuter de code arbitraire, contrairement à eval. Passez ensuite le résultat à json.dumps s’il vous faut du vrai JSON.

Corrigez-le maintenant

Collez le payload dans l’outil ci-dessus, ou allez directement à celui conçu pour ce travail.

Convertir les apostrophes en JSON