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

Posted

技术标签:

【中文标题】将json数据(未定义/混乱)转换为DataFrame的正确方法是啥?【英文标题】:What is the correct way to convert json data (which is undefined/messy) into a DataFrame?将json数据(未定义/混乱)转换为DataFrame的正确方法是什么? 【发布时间】:2019-08-13 21:36:24 【问题描述】:

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

我正在使用 python (3.7.1) 并尝试了读取 JSON 数据的常用方法。实际上,如果我使用 transpose 或 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】:

如您所见,即使未正确解析或提取 JSON 数据,Pandas 也会尝试创建数据框。如果您的目标是准确了解 Pandas 在呈现杂乱的 JSON 文件时会做什么,您可以查看 pd.DataFrame.from_dict() 的代码以了解更多信息。如果您的目标是让 JSON 数据正确转换为 Pandas 数据框,您将需要提供更多与 JSON 数据相关的信息,最好在问题中以文本形式提供数据样本。如果您的数据足够复杂,您可以尝试json_normalize() 函数,如here 所述。

【讨论】:

以上是关于将json数据(未定义/混乱)转换为DataFrame的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何正确地将数据帧的所有日期时间列转换为 iso 格式

ASP.NET MVC 核心 POST 请求未将 JSON 数据转换为模型

结果 JSON 数据未定义。如何获取 JSON 数据?

文件未从 xml 正确转换为 JSON

未捕获(承诺中)TypeError:将循环结构转换为 JSON

将 pandas 数据框转换为自定义 JSON 格式(然后转换为 JS 对象)