将json数据(未定义/混乱)转换为DataFrame的正确方法是什么?

时间:2019-03-22 20:34:38

标签: python json pandas dataframe jupyter-notebook

我试图了解如何将未正确解析/提取的JSON数据转换为(Pandas)DataFrame。

我正在使用python(3.7.1),并尝试了读取JSON数据的常规方法。实际上,如果我使用转置或axis = 1语法,则该代码有效。但是使用它会完全忽略数据中的大量值或变量,我100%确信代码可能正在工作,但未给出期望的结果。

import pandas as pd
import numpy as np
import csv
import json
sourcefile = open(r"C:\Users\jadil\Downloads\chicago-red-light-and-speed-camera-data\socrata_metadata_red-light-camera-violations.json")
json_data = json.load(sourcefile)
#print(json_data)
type(json_data)
dict
## this code works but is not loading/reading complete data
df = pd.DataFrame.from_dict(json_data, orient="index")
df.head(15)
#This is what I am getting for the first 15 rows
df.head(15)
0
createdAt   1407456580
description This dataset reflects the daily volume of viol...
rights  [read]
flags   [default, restorable, restorePossibleForType]
id  spqx-js37
oid 24980316
owner   {'type': 'interactive', 'profileImageUrlLarge'...
newBackend  False
totalTimesRated 0
attributionLink http://www.cityofchicago.org
hideFromCatalog False
columns [{'description': 'Intersection of the location...
displayType table
indexUpdatedAt  1553164745
rowsUpdatedBy   n9j5-zh

1 个答案:

答案 0 :(得分:1)

如您所见,Pandas会尝试使用JSON数据创建数据框,即使未正确解析或提取该数据框也是如此。如果您的目标是准确了解Pandas呈现为一个杂乱的JSON文件时的功能,则可以查看pd.DataFrame.from_dict()的代码以了解更多信息。如果您的目标是获取JSON数据以正确转换为Pandas数据框,则您需要在JSON数据旁边提供更多信息,理想情况下,通过以问题中的文本形式提供数据样本。如果数据足够复杂,则可以按照here所述尝试使用json_normalize()函数。