0
votes

Comment convertir ce type de structure de l'API en ataframe Python

J'ai ce résultat d'une API mais je ne suis pas en mesure de convertir cette structure en Dataframe Python Pandas.

réponse de l'API

réponse = {' Listes ': [{' ID ':' 0d4348d3a7 ',' Nom ':' Liste One '}, {' ID ':' 5E3E22AE7B ',' Nom ':' Liste de deux '}],' total_items ': 2} < / p>

Essayez une xxx

non exactement ce que je veux.

Essayez deux xxx

merci


3 commentaires

Vous êtes plus susceptible d'obtenir de l'aide si vous montrez que vous avez essayé de résoudre le problème. Pour vous aider, vous pouvez trouver Ce tutoriel intéressant.


Merci Pascal, j'ai essayé mais sans chance, désolé de ne pas poster des exemples de code. Je triie avec vos références.


Comment obtenez-vous de votre exemple dans une liste de dictionnaires comme indiqué dans vente = ... ? Qu'est-ce que réponse ["listes"] ? Ignorer les réponses à parler de JSON . Votre structure de données est déjà en python, ce qui n'est pas pertinent.


3 Réponses :


-1
votes

Que voulez-vous dire par DataFrame? Voulez-vous dire un Pandas Dataframe ? Votre réponse API ressemble à un JSON pour moi, donc JSON code> devrait faire votre travail: p>

import json
response = "{'lists': [{'id': '0d4348d3a7', 'name': 'list one'}, {'id': '5e3e22ae7b', 'name': 'list two'}], 'total_items': 2}"
dataframe = json.loads(response)


2 commentaires

Merci Marcel, il traverse une erreur Soulevez TypeError (l'objet JSON doit être STR, Bytes ou ByTeArray, 'TypeError: L'objet JSON doit être STR, octets ou byTeArray, pas dict.


Hey Vince, as-tu manqué entourant la ficelle Json avec des parenthèses?



-1
votes

Vous pourriez être en mesure d'utiliser la bibliothèque code> JSON code>: xxx pré>

Toutefois, votre réponse API doit être formatée JSON si vous utilisez le décodeur JSON, sinon vous 'll soulever un json.decoder.jsondecodeerror code> exception. Ce que vous avez posté n'est pas JSON et soulever cette exception: Â J'ai édité votre texte de réponse pour obtenir ceci pour décoder. P>

Si vous avez besoin d'un Dataframe Pandas: P>

#!/usr/bin/env python

import json
import pandas as pd
a = json.loads('{"lists": [{"id": "0d4348d3a7", "name": "list one"}, {"id": "5e3e22ae7b", "name": "list two"}], "total_items": 2}')
df = pd.DataFrame(data=a['lists'])
print(df)
'''
           id      name
0  0d4348d3a7  list one
1  5e3e22ae7b  list two
'''


0 commentaires

1
votes

Vous êtes assez proche, il suffit de ne pas passer toute la réponse JSON en soi, mais seulement la valeur dont vous avez besoin:

>>> import pandas as pd
>>> response = {'lists': [{'id': '0d4348d3a7', 'name': 'list one'}, {'id': '5e3e22ae7b', 'name': 'list two'}], 'total_items': 2}
>>> df = pd.DataFrame(response["lists"])
>>> df
           id      name
0  0d4348d3a7  list one
1  5e3e22ae7b  list two


0 commentaires