Skip to content

flatten_preserve_lists is failed to flatten data which has array in array #72

Description

@kanelee7512

Test data is like:
data = { "header": "header a",
"item": [{"itemLineNumber": 1}, {"itemLineNumber": 2}],
"containerInfo":
[{ "containerId":"A",
"containerItems":[{"itemSKU":1}]},
{"containerId":"B",
"containerItems":[{"itemSKU":2}]},
{"containerId":"C",
"containerItems":[{"itemSKU":3}]},
{"containerId":"D",
"containerItems":[{"itemSKU":4}]},
{"containerId":"E",
"containerItems":[{"itemSKU":5}]}]}

Int[5]: flatten_json.flatten_preserve_lists(data, max_list_index=10, max_depth=10)
Out[8]:
[{'header': 'header a',
'containerInfo_containerItems': 1,
'containerInfo_containerId': 'E',
'item': 1},
{'header': 'header a',
'containerInfo_containerItems': 1,
'containerInfo_containerId': 'E',
'item': 2},
{'header': 'header a',
'containerInfo_containerItems': 2,
'containerInfo_containerId': 'E',
'item': 1},
{'header': 'header a',
'containerInfo_containerItems': 2,
'containerInfo_containerId': 'E',
'item': 2},
{'header': 'header a',
'containerInfo_containerItems': 3,
'containerInfo_containerId': 'E',
'item': 1},
{'header': 'header a',
'containerInfo_containerItems': 3,
'containerInfo_containerId': 'E',
'item': 2},
{'header': 'header a',
'containerInfo_containerItems': 4,
'containerInfo_containerId': 'E',
'item': 1},
{'header': 'header a',
'containerInfo_containerItems': 4,
'containerInfo_containerId': 'E',
'item': 2},
{'header': 'header a',
'containerInfo_containerItems': 5,
'containerInfo_containerId': 'E',
'item': 1},
{'header': 'header a',
'containerInfo_containerItems': 5,
'containerInfo_containerId': 'E',
'item': 2}]

The header field (parent level) and containerItems(grandchild level) and Item(child level) fields are fine. But the containerId(child level) is always overwritten by the latest array item "containerId":"E".

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions