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 :

Modifications d'un fichier JSON


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 53
    Points : 32
    Points
    32
    Par défaut Modifications d'un fichier JSON
    Bonjour,

    alors voilà j'aimerais modifier mon fichier JSON ci-dessous :

    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
    27
    28
     
    [
       {
          "coordinates": {
             "timestamp": "1514704817"
          }, 
          "identification": {
             "producer": "réseau"
          }, 
          "meta": {
             "name": "test", 
             "tags": {}
          }, 
          "values": {
             "000000": "145.87 MB", 
             "000108": "2.71 GB", 
             "010100": "2.48 GB", 
             "010200": "1.55 GB", 
             "010400": "7.46 GB", 
             "010500": "1.76 GB", 
             "010600": "6.72 GB", 
             "010700": "3.57 GB", 
             "010900": "5.13 GB", 
             "011000": "3.16 GB",
             "098900": "8.52 GB"
          }
       }
    ]
    pour qu'il soit égale à ça (ci-dessous) :

    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
    27
    28
     
    [
       {
          "coordinates": {
             "timestamp": "1514704817"
          }, 
          "identification": {
             "producer": "réseau"
          }, 
          "meta": {
             "name": "test", 
             "tags": {}
          }, 
          "values": {
             "000000": 0,145, 
             "000108": 2.71, 
             "010100": 2.48, 
             "010200": 1.55, 
             "010400": 7.46, 
             "010500": 1.76, 
             "010600": 6.72, 
             "010700": 3.57, 
             "010900": 5.13, 
             "011000": 3.16,
             "098900": 8.52
          }
       }
    ]
    En gros j'aimerais supprimer les guillemets sur la colonne de droite de mes données et j'aimerais aussi faire en sorte que les données de droite soit toutes en GB, donc si un MB/TB/B apparait dans la colonne de droite, ça modifie bien pour faire en sorte que ça soit en GB.

    Voici mon code :
    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
     
    import json as simplejson
     
    #Creation des fichiers pour archivage
    lecture_donnees = "conso-epure-2018-01-23.txt"
     
    #Chargement du fichier au format Json
    with open('FormatJSON.txt', 'r') as f: fichier = simplejson.load(f)
     
    #Ouvre le fichier contenant les donnees en lecture
    with open(lecture_donnees , 'r') as f:   datas = dict([line.rstrip().split(' ', 1) for line in f])
    fichier[0]['values'].update(datas)
     
    for key, value in datas.iteritems():
        print(int(key), value)
     
    format_json_conso = "json-conso-donnees-2018-01-23.txt"
     
    with open(format_json_conso,'w') as f:
    	simplejson.dump(fichier, f, indent =3, sort_keys=True)
     
    print simplejson.dumps(fichier, indent=3, sort_keys=True)
    Le fichier "FormatJSON.txt" étant mon fichier contenant la base de mon format et le fichier "conso-epure-2018-01-23.txt" étant mon fichier contenant les données que j'ajoute à mon format JSON.

    Bonne journée.

  2. #2
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    On va as déjà aidez à ce propos ici me semble-t-il ...

    https://www.developpez.net/forums/d1...-fichier-json/

    On ne va quand même pas écrire à votre place le bout de code qui va regarder les 2 derniers caractères de chaque chaine et de faire fois 1000 ou fois un million si on détecte Mb ou Gb ...

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 53
    Points : 32
    Points
    32
    Par défaut
    Ok, mais il y a un moyen de supprimer les guillemets seulement sur une colonne précise par rapport à mon besoin ?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 428
    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 428
    Points : 37 010
    Points
    37 010
    Par défaut
    Citation Envoyé par Xam29870 Voir le message
    Ok, mais il y a un moyen de supprimer les guillemets seulement sur une colonne précise par rapport à mon besoin ?
    Il suffit de supprimer le "str" qui était dans le code précédent.
    Donc c'est possible.
    Maintenant, çà serait bien d'exposer les difficultés rencontrées pour faire çà.

    - W

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 53
    Points : 32
    Points
    32
    Par défaut
    Re-bonjour,

    déjà merci de ta réponse.

    J'ai un peu près réussi ce que je voulais faire grâce à vous, excepté un point.

    Voici mon code :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    #Creation des fichiers pour archivage
    lecture_donnees = "conso-epure-2018-01-23.txt"
     
    #Chargement du format Json
    with open('FormatJSON.txt', 'r') as f: 
        fichier = simplejson.load(f)
     
     
    #Ouvre le fichier contenant les donnees en lecture
    #Permet de recuperer les donnees
    with open(lecture_donnees , 'r') as f:
        datas = dict([line.rstrip().split(' ', 1) for line in f])
     
     
    for key in datas:
        if datas[key].split()[1] == ("TB"):
            datas[key] = round(float(datas[key].split()[0]) * 1000 ,3)
        elif datas[key].split()[1] == ("GB"):
            datas[key] = round(float(datas[key].split()[0]),3)
        elif datas[key].split()[1] == ("MB"):
            datas[key] = round(float(datas[key].split()[0]) / 1000 ,3)
        elif datas[key].split()[1] == ("KB"):
            datas[key] = round(float(datas[key].split()[0]) / 1000000, 5)
     
    fichier[0]['values'].update(datas)
     
    print fichier
     
    format_json_conso = "json-conso-donnees-2018-01-23.txt"
     
    with open(format_json_conso,'w') as f:
        simplejson.dump(fichier, f, indent =3, sort_keys=True)
     
    print simplejson.dumps(fichier, indent=3, sort_keys=True)
    Voici le résultat :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    [
       {
          "coordinates": {
             "timestamp": "1515141243"
          }, 
          "identification": {
             "producer": "réseau"
          }, 
          "meta": {
             "name": "test", 
             "tags": {}
          }, 
          "values": {
             "000000": 0.123, 
             "000108": 1.74, 
             "010100": 1.47, 
             "010200": 0.506, 
             "010400": 3.43, 
             "010500": 0.948, 
             "010600": 3.04, 
             "010700": 1.06, 
             "010900": 2.63, 
             "011000": 1.17, 
             "011200": 2.07, 
             "011300": 0.932, 
             "011400": 2.07, 
             "015200": 0.423, 
             "015400": 0.475, 
             "015500": 1.55, 
             "015600": 2.23, 
             "016000": 0.984, 
             "016500": 1.27, 
             "016600": 0.573, 
             "016700": 0.203, 
             "016800": 1.018, 
             "017000": 2.04, 
             "019300": 0.579, 
             "019400": 0.597, 
             "019700": 0.816, 
             "031300": 0.625, 
             "032800": 1.21, 
             "033000": 0.432, 
             "034000": 1.24, 
             "035200": 1.08, 
             "037400": 0.256, 
             "050100": 1.06, 
             "050200": 0.493, 
             "050300": 0.344, 
             "050500": 0.632, 
             "050600": 0.404, 
             "050700": 0.862, 
             "050800": 0.211, 
             "050900": 0.345, 
             "051000": 0.656, 
             "051100": 1.59, 
             "051200": 0.512, 
             "051300": 0.251, 
             "051400": 0.526, 
             "051500": 1.86, 
             "051600": 0.25, 
             "051800": 0.277, 
             "051900": 1.09, 
             "053700": 0.321, 
             "053800": 0.787, 
             "053900": 0.466, 
             "054000": 1.77, 
             "054100": 0.985, 
             "054200": 1.07, 
             "054300": 0.766, 
             "054400": 0.563, 
             "054500": 0.655, 
             "054600": 2.19, 
             "054700": 1.31, 
             "054800": 1.34, 
             "054900": 1.53, 
             "055000": 2.31, 
             "055100": 0.603, 
             "055200": 1.25, 
             "055300": 2.73, 
             "055400": 2.31, 
             "055500": 0.564, 
             "055600": 2.12, 
             "055700": 0.64, 
             "055800": 0.414, 
             "055900": 0.732, 
             "056000": 0.342, 
             "056100": 0.401, 
             "056300": 0.352, 
             "056400": 0.476, 
             "056500": 0.689, 
             "056600": 0.662, 
             "057900": 0.168, 
             "058000": 0.65, 
             "058100": 0.846, 
             "058200": 0.344, 
             "058300": 0.429, 
             "058400": 0.446, 
             "058500": 0.614, 
             "058600": 0.336, 
             "058700": 0.221, 
             "058800": 0.309, 
             "058900": 0.222, 
             "060100": 0.004, 
             "060400": 0.004, 
             "060500": 0.001, 
             "060600": 0.00065, 
             "060700": 0.03, 
             "060800": 0.009, 
             "061100": 0.0, 
             "061200": 0.0, 
             "061300": 1e-05, 
             "061400": 0.0, 
             "061500": 0.00029, 
             "061600": 0.00049, 
             "062200": 0.0, 
             "062300": 0.002, 
             "062500": 0.0, 
             "062700": 0.002, 
             "062800": 0.00047, 
             "063200": 0.00024, 
             "063300": 0.0, 
             "063500": 0.0, 
             "063800": 0.00026, 
             "070100": 1.13, 
             "070200": 1.52, 
             "070300": 3.26, 
             "070400": 2.15, 
             "070500": 1.78, 
             "071300": 1.013, 
             "071400": 1.53, 
             "071500": 1.56, 
             "071600": 0.87, 
             "071700": 1.51, 
             "071800": 1.59, 
             "071900": 1.45, 
             "072000": 0.983, 
             "072100": 1.1, 
             "072200": 2.85, 
             "072300": 1.6, 
             "072400": 0.956, 
             "072500": 0.969, 
             "072600": 1.51, 
             "076500": 2.67, 
             "076800": 1.01, 
             "076900": 0.441, 
             "077000": 1.79, 
             "077300": 1.05, 
             "077500": 1.07, 
             "077900": 1.49, 
             "078000": 0.323, 
             "078100": 0.298, 
             "078500": 1.02, 
             "078600": 1.88, 
             "078700": 0.677, 
             "078900": 0.502, 
             "080100": 1.38, 
             "080200": 1.8, 
             "080300": 0.749, 
             "080400": 1.57, 
             "080500": 3.51, 
             "098900": 4.55
          }
       }
    ]
    Le truc c'est qu'à certains endroits (écrits en gras ci-dessus) lorsque la donnée de base est en KB et qu'elle est transformée par le code, la donnée réelle obtenue est soit 0.0 ou alors il y a même une puissance -5. Et ceci même en changement le nombre de chiffre après la virgule via l'utilisation de rounf(). Parce qu'à l'endroit où sont situé les valeurs en gras, il y a également d'autres valeurs qui de base étaient en KB et qui ce sont bien transformées tels que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
             "061500": 0.00029, 
             "061600": 0.00049,
             "062800": 0.00047, 
             "063200": 0.00024,

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 428
    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 428
    Points : 37 010
    Points
    37 010
    Par défaut
    Si vous demandez à round de garder 5 chiffres significatifs après la virgule, pour des valeurs "petites" (qui n'ont de chiffres significatifs qu'après la 6ème décimale), çà affichera, par défaut 0.0 ou une puissance de 10. Soit vous augmentez le nombre de chiffres significatifs, soit vous imposez 0.0 lorsque la valeur est plus petite que... (pour éviter l'affichage des puissance de 10), soit vous faites avec: c'est une représentation json correcte.

    - W

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 53
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    soit vous faites: c'est une représentation json correcte.
    Il doit manquer un bout de la phrase non ?
    Effectivement, les 0.0 ont disparu mais les puissances sont toujours présentes

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 428
    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 428
    Points : 37 010
    Points
    37 010
    Par défaut
    Citation Envoyé par Xam29870 Voir le message
    Il doit manquer un bout de la phrase non ?
    Oui, c'est corrigé.

    - W

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 53
    Points : 32
    Points
    32
    Par défaut
    Merci beaucoup de ton aide Topic résolu !

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 53
    Points : 32
    Points
    32
    Par défaut
    Bon en faite, j'ai juste un dernier détail pour un autre fichier au format JSON (ci-dessous)

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    [
       {
          "coordinates": {
             "timestamp": "1515141243"
          }, 
          "identification": {
             "producer": "réseau"
          }, 
          "meta": {
             "name": "test", 
             "tags": {}
          }, 
          "values": {
             "200": "811719757", 
             "201": "805928", 
             "202": "1377002", 
             "203": "160", 
             "204": "4589502", 
             "206": "673800", 
             "300": "187", 
             "301": "4065307", 
             "302": "29090593", 
             "303": "50104", 
             "304": "41271631", 
             "307": "83014", 
             "400": "338039", 
             "401": "2282272", 
             "402": "5", 
             "403": "4106169", 
             "502": "475210", 
             "503": "15732014", 
             "504": "74062", 
             "505": "2"
          }
       }
    ]
    j'aimerais également supprimer les guillemets de la colonne de droite, voici le code :

    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
     
    lecture_code_reponse = "code-epure-2018-01-23.txt"
     
    with open('FormatJSON.txt', 'r') as f: fichier = simplejson.load(f)
     
    with open(lecture_code_reponse,'r') as f: datas = dict([line.rstrip().split(' ',1) for line in f])
     
     
     
    for key,datas in datas.iteritems():
    	#print key + ' ' + datas
    	if (datas != 0):
    		datas = int(datas.split()[0])
    		#print datas
     
     
    fichier[0]['values'].update(datas)
     
    format_json_code = "Code-reponse-2018-01-23.txt"
     
     
    with open(format_json_code,'w') as f:
    	simplejson.dump(fichier, f, indent =3, sort_keys = True)
     
    print simplejson.dumps(fichier, indent=3, sort_keys=True)
    j'ai donc tenté de ré-utiliser le code précédent, mais ça n'a pas l'air de fonctionner.

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 428
    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 428
    Points : 37 010
    Points
    37 010
    Par défaut
    Citation Envoyé par Xam29870 Voir le message
    mais ça n'a pas l'air de fonctionner.
    Si vous voulez apprendre à programmer, il faut essayer de vous appliquer à décrire le problème rencontré. Genre, lorsque j'applique l'opération abracadabra à l'entier représenté par '403', j'obtiens XXX alors que je m'attendais à récupérer AAA. Ce qui devrait vous permettre de vous concentrer sur la fameuse opération et d'essayer de comprendre ce qu'il se passe en lançant la console Python et en regardant ce qu'il se passe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> s = '403'
    >>> abracadabra(s)
    XXX
    En essayant de faire çà, abracadabra étant la composition d'opérations de base, vous aurez plus de chance de comprendre l'erreur par vous même. Sinon, plus la peine de poster ici tout votre programme, juste ce qui pose soucis. Et vous montrez aussi que vous avez essayé de comprendre ce qu'il se passe plutôt que de dire "çà marche pas".

    - W

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 53
    Points : 32
    Points
    32
    Par défaut
    Bon du coup via ton histoire d'abracadabra, j'ai testé tous les types de variables pour savoir lequel faisait disparaître les guillemets. Il s'agit donc du int. J'ai donc tenté de changé ma variable en int. Et j'ai une erreur au niveau de cette ligne ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fichier[0]['values'].update(datas)
    J'obtiens cette erreur : "TypeError: 'int' object is not iterable" du coup je vais sur stackoverflow pour chercher la solution et je trouve un topic avec le même problème dans lequel on lui dit qu'il faut mettre des crochets à la place des parenthèses.

    C'est donc ce que je fais et en retentant j'obtiens cette erreur : " TypeError: 'builtin_function_or_method' object has no attribute '__getitem__' ", je retourne sur stackoverflow et là je remarque qu'on demande à tout ce qui ont cette erreur de remplacer les crochets par des parenthèses.

    J'ai l'impression que ça tourne en rond.

    Partie modifiée depuis l'ancien code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for key,datas in datas.iteritems():
    	print key + ' ' + datas
    	if (datas != 0):
    		datas = int(datas)
    		print datas
     
     
    fichier[0]['values'].update[datas]

  13. #13
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Tu n'as pas encore les bons réflexes.

    Il faut user, réuser et abuser du print pour se débloquer.
    Si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fichier[0]['values'].update(datas)
    merde alors on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print(fichier[0]['values'])
    print(datas)
    et on vérifie que tout est conforme.
    Si oui le bug est sur cette ligne, sinon il faut remonter à la source. Python vous indique une erreur lorsqu'il est bloqué. Mais ca veut pas dire que l'erreur est là. Souvent l'erreur est avant !


    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    a=0
    b=7
    c=b/a
    print(c)
    Python vous retourne une erreur division par 0 à la ligne 3. Mais l'erreur est en fait ici ligne 1, car a n'a pas à être mis à zéro ici. Lorsque Python éxécute la ligne 1, il ne peut pas deviner que c'est une "mauvaise ligne". Il vous envoie balader donc seulement à la ligne 3 lorsque vous lui demander de faire une division.


    Pour ce qui est de votre cas, il y a fort à parier qu'il faille remonter à l'erreur originelle. Et ca pas de secret, il faut faire des print ! Et aussi comprendre une peu les solutions trouvé sur la toile (car remplacer crochets par parenthèse ou vice versa n'est pas anodin. Savoir ce que cela impacte permet d'arriver plus vite à se débloquer plutot que d'essayer sans comprendre ce que tu fais)...

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2017
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2017
    Messages : 53
    Points : 32
    Points
    32
    Par défaut
    Merci beaucoup lg, je n'ai effectivement pas l'habitude d'utiliser les print et je devrais !

    Grâce à toi j'ai pris du recul vis à vis de mon code et j'ai trouvé mon erreur !

    Merci !

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

Discussions similaires

  1. Modifications d'un fichier JSON
    Par Xam29870 dans le forum Général Python
    Réponses: 3
    Dernier message: 04/01/2018, 12h46
  2. Temps écoulé pour la modification d'un fichier
    Par pouet33 dans le forum Langage
    Réponses: 4
    Dernier message: 06/09/2005, 13h41
  3. Réponses: 20
    Dernier message: 17/03/2005, 16h26
  4. Est-il possible de détecter la modification d'un fichier ?
    Par Kokito dans le forum API, COM et SDKs
    Réponses: 13
    Dernier message: 25/06/2004, 11h42
  5. [langage] Date de modification d'un fichier
    Par Cyspak dans le forum Langage
    Réponses: 2
    Dernier message: 24/06/2003, 16h49

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