Peut json.charges ignorer les virgules?

Comme mentionné dans cette question StackOverflow , vous n'êtes pas autorisé à avoir des virgules de fin dans json. Par exemple, CE

{
    "key1": "value1",
    "key2": "value2"
}

Est bien, mais ce

{
    "key1": "value1",
    "key2": "value2",
}

N'est pas valide.

Pour les raisons mentionnées dans cette autre question de StackOverflow , l'utilisation d'une virgule de fin est légale (et peut-être encouragée?) dans le code Python. Je travaille avec Python et JSON, donc j'aimerais pouvoir être cohérent sur les deux types de fichiers. Est-il un moyen de avez-vous json.loads ignorer les virgules de fin?

22
demandé sur Community 2014-05-17 02:12:44

2 réponses

Vous pouvez envelopper l'analyseur JSON de python avec jsoncomment

Le Commentaire JSON permet d'analyser des fichiers ou des chaînes JSON avec:

  • commentaires sur une ou plusieurs lignes
  • chaînes de données multi-lignes
  • virgules de fin dans les objets et les tableaux, après le dernier élément

Exemple d'utilisation:

import json
from jsoncomment import JsonComment

with open(filename) as data_file:    
    parser = JsonComment(json)
    data = parser.load(data_file)
4
répondu Steve Lorimer 2017-07-04 20:55:03

Supprimez les virgules avant de passer la valeur.

import re

def clean_json(string):
    string = re.sub(",[ \t\r\n]+}", "}", string)
    string = re.sub(",[ \t\r\n]+\]", "]", string)

    return string
7
répondu andrewgrz 2014-05-16 22:39:21