我刚刚发现了json_normalize函数,它可以很好地处理JSON对象并生成一个pandas Dataframe。现在我需要反向操作,它可以处理相同的Dataframe并生成一个json(或者类似于json的字典,我可以很容易地将其转换为json),其结构与原始json相同。
下面是一个例子:https://hackersandslackers.com/json-into-pandas-dataframes/。
他们接受一个JSON对象(或类似JSON的python字典)并将其转换为一个 Dataframe ,但现在我想接受该 Dataframe 并将其转换回一个类似JSON的字典(以便稍后转储到json文件)。
6条答案
按热度按时间bzzcjhmw1#
我用几个函数实现了它
ukdjmx9f2#
更简单的方法:
nfeuvbwi3#
或
vcudknz34#
让我把我的意见说出来
在向后转换之后,你可能需要从你生成的jsons中删除空列。因此,我检查了瓦尔!= np. nan。但是你不能直接这样做,相反,你需要检查val == val与否,因为np.nan!=本身。我的版本:
b09cbbtk5#
这是一个在我看来很有效的解决方案。它被设计成在只有一行的 Dataframe 上工作,但是它可以很容易地在大的 Dataframe 上循环。
我用一个简单的 Dataframe 进行了测试,例如:
json中的顺序并不完全保留在结果json中,但如果需要,可以很容易地处理。
oyjwcjzk6#
我只是用两个函数实现了这个。
1.从DataFrame中获取属于嵌套字段一部分的字段的完整列表。仅父级,即如果
location.city.code
符合条件,则只关注location.city
。按嵌套的最深级别对其进行排序,即location.city
比location
嵌套得更深。1.从嵌套最深的父字段开始,通过在列名中搜索来查找所有子字段。在DataFrame中为父字段创建一个字段,该字段是所有子字段的组合(重命名以使其失去嵌套结构,例如
location.city.code
变为code
),这些子字段转换为JSON,然后加载为字典值。最后,删除所有子字段。