IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Ajouter liste dans un fichier JSON


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par défaut Ajouter liste dans un fichier JSON
    Bonjour,

    J'ai un fichier qui contient le JSON suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {
    	"module": 
    	{
    		"Adresse": "127.0.0.1",
    		"Nb": 25
     
    	},
    	"zone":
    	{
    		"Cle": 0,
    		"Marque": 0
    	}
    }
    Je souhaite pouvoir rajouter une liste pour chaque groupe afin d'obtenir le fichier suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    {
    	"module": 
    	[{
    		"Adresse": "127.0.0.1",
    		"Nb": 25,
     
    	},	
            {
    		"Adresse": "127.0.0.1",
    		"Nb": 26,
     
    	},
            {...}],
    	"zone":
    	[{
    		"Cle": 0,
    		"Marque": 0
    	},
            {
    		"Cle": 2,
    		"Marque": 3
    	},
            {...}
            ]
    }
    J'avais pensé à créer plusieurs fichiers JSON avec le contenu de chaque clé ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [{"Adresse": "127.0.0.1","Nb": "25"},{"Adresse": "127.0.0.1","Nb": "26"}]
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [{"Cle": 0,"Marque": 0}, {"Cle": 2,"Marque": 3}]
    Sachant que les différentes listes à ajouter dans le JSON proviennent d'un autre fichier JSON.

    Comment faire et de quelle manière pour que cela soit simple à mettre en oeuvre ?

    Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par nico85 Voir le message
    Comment faire et de quelle manière pour que cela soit simple à mettre en oeuvre ?
    Ca se fait comme pour l'ajout d'une ligne qui vous a été décrit dans cette discussion.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par défaut
    Bonjour,

    J'ai fait le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    file.json
     
    {
    	"module": 
    	{
    		"Adresse": "127.0.0.1",
    		"Nb": 25
     
    	},
    	"zone":
    	{
    		"Cle": 0,
    		"Marque": 0
    	}
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    myfile2=open("/var/www/html/file.json")
    with myfile2 as fichier:
        data = json.load(fichier)
        print('\n')
        print ("\nDATA: %s" % data)
        title0=data["module"]["adresse"]
        title1=data["module"]["Nb"]
        print title0
        print('\n')
     
    #Creer une liste
        a={}
        a["adresse"]=title0
        a["Nb"]=title1
        print ("A: %s" % a)
     
     
    with open('/var/www/html/file.json', 'r') as file:
        data=json.load(file)
        print "DATA: %s" % data
        data["module"].update(a)
        file.seek(0)	
        #data.append(y)#Permet d'ajouter sans cle
    with open('/var/www/html/file.json', 'w') as file:
        json.dump(data, file)
    Le code fonctionne mais pas forcement comme je le souhaite.
    En effet, pour ce type de formatage, cela ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {
    	"module": 
    	{
    		"Adresse": "127.0.0.1",
    		"Nb": 25
     
    	},
    	"zone":
    	{
    		"Cle": 0,
    		"Marque": 0
    	}
    }
    Puisqu'il faudrait le format suivant avec les crochets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    {
    	"module": 
    	[{
    		"Adresse": "127.0.0.1",
    		"Nb": 25,
     
    	},	
            {
    		"Adresse": "127.0.0.1",
    		"Nb": 26,
     
    	},
            {...}],
    	"zone":
    	[{
    		"Cle": 0,
    		"Marque": 0
    	},
            {
    		"Cle": 2,
    		"Marque": 3
    	},
            {...}
            ]
    }
    Merci

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par nico85 Voir le message
    Puisqu'il faudrait le format suivant avec les crochets:
    Les crochets [] se traduisent en ce qui s'appelle "list" et les crochets {} en "dict".
    Du code pour dépanner, est pour vous inciter à voir ou revoir ce qu'on peut faire avec ces structures de données de base du langage (dont vous avez besoin pour balayer ce qui sort d'un json.load).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 219
    Par défaut
    Hello,
    une possibilité ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    import json
     
    myjsonsrc = """
    {
        "module": 
        {  "Adresse": "127.0.0.1",
            "Nb": 25 
        },
        "zone":
        {
            "Cle": 0,
            "Marque": 0
        }
    }
    """
    myjson = json.loads(myjsonsrc)
    myjson['module'] = [{"Adresse": "127.0.0.1","Nb": "25"},{"Adresse": "127.0.0.1","Nb": "26"}]
    myjson['zone'] = [{"Cle": 0,"Marque": 0}, {"Cle": 2,"Marque": 3}]
    myjsondst = json.dumps(myjson, sort_keys=True)
    print(myjsondst)
    Sinon comment sont les fichiers json externes à ajouter ?

    Ami calmant, J.P

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par défaut
    Citation Envoyé par jurassic pork Voir le message

    Sinon comment sont les fichiers json externes à ajouter ?
    Salut,
    Le fichier JSON externe est de cette forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {
    	"module": 
    	{
    		"Adresse": "127.0.1.1",
    		"Nb": 30
     
    	},
    	"zone":
    	{
    		"Cle": 1,
    		"Marque": 2
    	}
    }
    Cdt

  7. #7
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 219
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import json
    myjsonsrc1 = """
    { "module": { "Adresse": "127.0.0.1", "Nb": 25 }, "zone": { "Cle": 0, "Marque": 0 } }
    """
    myjsonsrc2 = """
    { "module": { "Adresse": "127.0.0.1", "Nb": 26 }, "zone": { "Cle": 2, "Marque": 3 } }
    """
    myjson1 = json.loads(myjsonsrc1)
    myjson2 = json.loads(myjsonsrc2)
    myjson = {}
    myjson['module'] = [myjson1['module'],myjson2['module']]
    myjson['zone'] = [myjson1['zone'],myjson2['zone']]
    myjsondst = json.dumps(myjson, sort_keys=True)
    print(myjsondst)
    ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/11/2019, 10h45
  2. [Python 3.X] Ajout d'une ligne dans un fichier Json
    Par MariemBNM dans le forum Général Python
    Réponses: 13
    Dernier message: 07/10/2019, 23h21
  3. [UI Mobile] Ajouter des données dans un Fichier JSON
    Par van-bom dans le forum jQuery
    Réponses: 7
    Dernier message: 31/01/2014, 16h50
  4. [AC-2003] Ajouter liste repertoire et fichier dans une table
    Par fuzcrew dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/01/2010, 15h47
  5. ajout evenements dans le fichier CSS
    Par cosminutza dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 20/11/2004, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo