我得到一个csv文件,如下所示:
属性1_x,属性1_y,属性1_z_0_p,属性1_z_0_c,属性1_z_1_p,属性1_z_1_c,属性2_R,属性2_K,属性3
1、2、100、200、500、600、222、320,喂
csv代表一个json,如下图所示。
{
"attrib1":{
"x":1,
"y":2,
"z":[{"p":100,"c":200},{"p":500,"c":600}]
},
"attrib2":{"R":222,"K":320},
"attrib3":"hello"
}
基本上,我在这里得到了上面的CSV,需要将其转换为所示的JSON结构
.不知道如何做。有没有任何库(Python/Java)可以帮助我做这件事。
如果任何解决方案/建议与不同的csv标题可用,也将工作。我可以要求团队提供我的csv与不同的标题名称,以表示嵌套/数组。
4条答案
按热度按时间snvhrwxg1#
首先迭代
key
,然后类似地迭代value
并保存到csv中roejwanj2#
试试看吧,也许会有帮助
svdrlsy43#
CSV的第一行包含字段名(用下划线表示层次关系),详细数据从第二行开始,需要将CSV转换为JSON格式。这里的难点是动态解析。它将涉及分组、递归、循环、条件判断和字符串连接。如果用Java来做这些,代码会相当长。
尝试使用SPL(开源Java包)来实现这一点。它很简单,5行代码就足够了:enter image description here
SPL提供了Java调用的JDBC驱动程序,只需将上面的SPL脚本存储为recurse.splx,并在调用存储过程时在Java应用程序中调用它即可:
hc8w905p4#
使用库 Josson 构建JSON结构。
首先将csv文件头和内容拆分,建立Map,然后使用函数
unflatten()
进行转换。输出:取消展平前
输出:展平后