对于模糊标题感到抱歉,我需要一些关于Python魔法的帮助,并且想不到任何更具描述性的内容。Python脚本将复杂的扁平化数据转换为JSON
我有一个固定的JSON数据结构,我需要将CSV文件转换为。该结构是固定的,但与列表等深层嵌套。它与此类似,但更复杂:
{
"foo" : bar,
"baz" : qux,
"nub" : [
{
"bub": "gob",
"nab": [
{
"nip": "jus",
"the": "tip",
},
...
],
},
...
],
"cok": "hed"
}
希望你明白了。列表上的列表上的列表等等。我为CSV可能是这样的:
foo, baz, nub.bub, nub.nab.nip, nub.nab.the, cok
bar, qux, "gob" ,,,, "hed"
,,,,, "nab", "jus","tip",,
,,,,, "nab", "other", "values",,
很抱歉,如果这是很难读,但其基本思想是,如果有这将是其下一行的上市项目,并重复的值来表示什么子 - 列表属于什么。
我不想找任何人想出解决这个混乱的问题,只是可能有一些关于技术或事情的指针。
现在我有一个粗略的计划:
我转动头部到包含密钥元组的列表开始。对于每组行(项目),我将创建我的模板字典副本。我有一个函数,它将从一个键元组中设置一个字典值,除非它找到一个列表。在这种情况下,我将调用一个时髦的递归函数并将其传递给我的迭代器,并继续填充该函数中的dict,并在发现新列表时进行递归调用。
我也可以做很多硬编码,但是有什么好玩的呢?
这就是我的故事。再次,只是寻找一些关于如何做到这一点的最佳方法的指针。我写得很快,所以它可能有点混乱,请让我知道,如果有更多的信息会有所帮助。谢谢!
有问题的格式基本上是不同的,试图解析一个到另一个将证明两个问题,并容易出错。 _为什么你需要这样的csv文件? –
有人为我制作测试数据集,这是他们使用的格式。这并不理想,但我不想让他们改变它(他们正在用手做这件事......)。我可以解析它,这只会是一个痛苦的屁股。 – user3779812