Imbriquée Json pour les pandas DataFrame avec format spécifique
j'ai besoin de formater le contenu d'un fichier Json dans un certain format dans une pandas DataFrame pour que je puisse exécuter pandassql pour transformer les données et le lancer à travers un modèle de pointage.
fichier = C:\scoring_model\json.js (contenu du fichier " ci-dessous)
{
"response":{
"version":"1.1",
"token":"dsfgf",
"body":{
"customer":{
"customer_id":"1234567",
"verified":"true"
},
"contact":{
"email":"[email protected]",
"mobile_number":"0123456789"
},
"personal":{
"gender": "m",
"title":"Dr.",
"last_name":"Muster",
"first_name":"Max",
"family_status":"single",
"dob":"1985-12-23",
}
}
}
J'ai besoin de la dataframe ressembler à ça (évidemment, toutes les valeurs sur la même ligne, essayé de formater le mieux possible pour cette question):
version | token | customer_id | verified | email | mobile_number | gender |
1.1 | dsfgf | 1234567 | true | mr@abc.com | 0123456789 | m |
title | last_name | first_name |family_status | dob
Dr. | Muster | Max | single | 23.12.1985
J'ai regardé toutes les autres questions sur ce sujet, ont essayé différentes façons de charger des fichier Json dans les pandas
`with open(r'C:\scoring_model\json.js', 'r') as f:`
c = pd.read_json(f.read())
`with open(r'C:\scoring_model\json.js', 'r') as f:`
c = f.readlines()
essayé pd.Panneau() dans cette solution Python Pandas: Comment scinder une triés dictionnaire dans une colonne d'un dataframe
avec dataframe les résultats de [yo = f.readlines()] pensé à essayer de diviser le contenu de chaque cellule sur la base ("") et de trouver un moyen de mettre la scission contenu dans les différentes colonnes, mais pas de chance jusqu'à présent. Votre expertise est très appréciée. Je vous remercie à l'avance.
OriginalL'auteur figgy | 2015-12-17
Vous devez vous connecter pour publier un commentaire.
Si vous chargez dans l'ensemble du json comme dict (ou une liste), par exemple à l'aide de json.charge, vous pouvez utiliser
json_normalize
:Les données json est chargé comme dtype "objet". Afin de transformer les données avec pandasql, les requêtes de données dans les colonnes doivent être dans les divers types de données (j'.e 'int', 'str', 'timestamp', etc.), quelle est la meilleure façon de le faire? ne vous recommandons l'approche trouvé ici? lien
suite à mon commentaire ci-dessus, s'est retrouvé à l'aide de plâtre(variable_x as integer) pour transformer les données dans pandasql
OriginalL'auteur Andy Hayden