4 votes

Pourquoi un entier de chaîne est lu de manière incorrecte avec pandas.read_json ?

Je ne suis pas du genre à faire de l'hyperbole, mais cette erreur me laisse vraiment perplexe et je suis sûr que vous le serez aussi

Voici un objet json simple :

[
    {
        "id": "7012104767417052471",
        "session": -1332751885,
        "transactionId": "515934477",
        "ts": "2019-10-30 12:15:40 AM (+0000)",
        "timestamp": 1572394540564,
        "sku": "1234",
        "price": 39.99,
        "qty": 1,
        "ex": [
            {
                "expId": 1007519,
                "versionId": 100042440,
                "variationId": 100076318,
                "value": 1
            }
        ]
    }
]

Maintenant j'ai sauvegardé le fichier dans ex.json et ensuite j'ai exécuté le code python suivant :

import pandas as pd

df = pd.read_json('ex.json')

Lorsque je vois le cadre de données, la valeur de mon identifiant est passée de "7012104767417052471" à "7012104767417052160".

Quelqu'un comprend-il pourquoi python fait cela ? Je l'ai essayé dans node, js, et même excel et tout se passe bien dans le reste

Si je fais cela, j'obtiens le bon identifiant :

with open('Siva.json') as data_file:    
    data = json.load(data_file)
df = json_normalize(data)

Mais je veux comprendre pourquoi pandas ne traite pas correctement le json d'une manière étrange.

5voto

Trenton_M Points 734

Il s'agit d'un problème connu :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X