0

So I'm totally stuck. I have an array of dictionaries that I need to sort by the 'StartingSequenceNumber'. Before I can do that though I need to modify the list so that child of parent is nested underneath their parent.

here is the object:

[{'SequenceNumberRange': {'EndingSequenceNumber': '2633238500000000007210427396',
                          'StartingSequenceNumber': '2633238500000000007210194409'},
  'ShardId': 'shardId-00000001560257151382-0511248f'},
 {'SequenceNumberRange': {'EndingSequenceNumber': '2633238500000000007213849718',
                          'StartingSequenceNumber': '2633238500000000007213849718'},
  'ShardId': 'shardId-00000001560257151491-87e08366'},
 {'SequenceNumberRange': {'EndingSequenceNumber': '2633251700000000001798778226',
                          'StartingSequenceNumber': '2633248700000000001797056631'},
  'ShardId': 'shardId-00000001560257151593-e403a304'},
 {'SequenceNumberRange': {'EndingSequenceNumber': '2633234300000000025942601968',
                          'StartingSequenceNumber': '2633234300000000025942601968'},
  'ShardId': 'shardId-00000001560257151699-5b26f959'},
 {'ParentShardId': 'shardId-00000001560257151593-e403a304',
  'SequenceNumberRange': {'EndingSequenceNumber': '2634037900000000000108985046',
                          'StartingSequenceNumber': '2634034900000000000105825431'},
  'ShardId': 'shardId-00000001560271360529-805b9f3a'},
 {'ParentShardId': 'shardId-00000001560257151491-87e08366',
  'SequenceNumberRange': {'EndingSequenceNumber': '2634025200000000040876171219',
                          'StartingSequenceNumber': '2634025200000000040876171219'},
  'ShardId': 'shardId-00000001560271429234-b8057033'},
 {'ParentShardId': 'shardId-00000001560257151699-5b26f959',
  'SequenceNumberRange': {'EndingSequenceNumber': '2634029900000000003093016867',
                          'StartingSequenceNumber': '2634029800000000003091145714'},
  'ShardId': 'shardId-00000001560271584901-5bc73caa'},
 {'ParentShardId': 'shardId-00000001560257151382-0511248f',
  'SequenceNumberRange': {'EndingSequenceNumber': '2634044600000000000092715064',
                          'StartingSequenceNumber': '2634044600000000000092715064'},
  'ShardId': 'shardId-00000001560271787021-e3ac5a4d'},
 {'ParentShardId': 'shardId-00000001560271584901-5bc73caa',
  'SequenceNumberRange': {'EndingSequenceNumber': '2634730900000000002873233326',
                          'StartingSequenceNumber': '2634730900000000002873233326'},
  'ShardId': 'shardId-00000001560284300833-b247355c'},
 {'ParentShardId': 'shardId-00000001560271787021-e3ac5a4d',
  'SequenceNumberRange': {'EndingSequenceNumber': '2634858000000000080977292775',
                          'StartingSequenceNumber': '2634858000000000080977292775'},
  'ShardId': 'shardId-00000001560286548924-f33e4310'},
 {'ParentShardId': 'shardId-00000001560271360529-805b9f3a',
  'SequenceNumberRange': {'EndingSequenceNumber': '2634898600000000025129406835',
                          'StartingSequenceNumber': '2634898600000000025129406835'},
  'ShardId': 'shardId-00000001560286959816-2865162a'},
 {'ParentShardId': 'shardId-00000001560271429234-b8057033',
  'SequenceNumberRange': {'EndingSequenceNumber': '2634901400000000006787250705',
                          'StartingSequenceNumber': '2634901400000000006787250705'},
  'ShardId': 'shardId-00000001560287331121-d2d13f68'},
 {'ParentShardId': 'shardId-00000001560284300833-b247355c',
  'SequenceNumberRange': {'EndingSequenceNumber': '2635547600000000004917974579',
                          'StartingSequenceNumber': '2635547600000000004917974579'},
  'ShardId': 'shardId-00000001560299126708-cd58deb8'},
 {'ParentShardId': 'shardId-00000001560286959816-2865162a',
  'SequenceNumberRange': {'EndingSequenceNumber': '2635614400000000011112961891',
                          'StartingSequenceNumber': '2635614400000000011112961891'},
  'ShardId': 'shardId-00000001560299943423-5092e710'},
 {'ParentShardId': 'shardId-00000001560286548924-f33e4310',
  'SequenceNumberRange': {'EndingSequenceNumber': '2635629600000000035186152685',
                          'StartingSequenceNumber': '2635629600000000035186152685'},
  'ShardId': 'shardId-00000001560300547953-8cf11cdb'},
 {'ParentShardId': 'shardId-00000001560287331121-d2d13f68',
  'SequenceNumberRange': {'EndingSequenceNumber': '2635707900000000000023976055',
                          'StartingSequenceNumber': '2635707900000000000023976055'},
  'ShardId': 'shardId-00000001560301980437-f2f9475d'},
 {'ParentShardId': 'shardId-00000001560299126708-cd58deb8',
  'SequenceNumberRange': {'EndingSequenceNumber': '2636370100000000074206229014',
                          'StartingSequenceNumber': '2636370100000000074206229014'},
  'ShardId': 'shardId-00000001560314058242-5339522d'},
 {'ParentShardId': 'shardId-00000001560299943423-5092e710',
  'SequenceNumberRange': {'EndingSequenceNumber': '2636417200000000001926939028',
                          'StartingSequenceNumber': '2636417200000000001926939028'},
  'ShardId': 'shardId-00000001560314505275-5c841625'},
 {'ParentShardId': 'shardId-00000001560301980437-f2f9475d',
  'SequenceNumberRange': {'EndingSequenceNumber': '2636428500000000041510315707',
                          'StartingSequenceNumber': '2636428500000000041510315707'},
  'ShardId': 'shardId-00000001560315054099-344f5f91'},
 {'ParentShardId': 'shardId-00000001560300547953-8cf11cdb',
  'SequenceNumberRange': {'EndingSequenceNumber': '2636441300000000002965649614',
                          'StartingSequenceNumber': '2636441300000000002965649614'},
  'ShardId': 'shardId-00000001560315261944-f960b4d5'},
 {'ParentShardId': 'shardId-00000001560314058242-5339522d',
  'SequenceNumberRange': {'EndingSequenceNumber': '2637138500000000006731034556',
                          'StartingSequenceNumber': '2637138500000000006731034556'},
  'ShardId': 'shardId-00000001560327995519-569c81d3'},
 {'ParentShardId': 'shardId-00000001560314505275-5c841625',
  'SequenceNumberRange': {'EndingSequenceNumber': '2637221000000000060883856558',
                          'StartingSequenceNumber': '2637220800000000060875264197'},
  'ShardId': 'shardId-00000001560329076755-04a49b76'},
 {'ParentShardId': 'shardId-00000001560315054099-344f5f91',
  'SequenceNumberRange': {'EndingSequenceNumber': '2637254600000000004923595364',
                          'StartingSequenceNumber': '2637254600000000004923595364'},
  'ShardId': 'shardId-00000001560330042571-05db45b1'},
 {'ParentShardId': 'shardId-00000001560315261944-f960b4d5',
  'SequenceNumberRange': {'EndingSequenceNumber': '2637257900000000011211752197',
                          'StartingSequenceNumber': '2637257900000000011211752197'},
  'ShardId': 'shardId-00000001560330079021-de30e4d9'},
 {'ParentShardId': 'shardId-00000001560329076755-04a49b76',
  'SequenceNumberRange': {'StartingSequenceNumber': '2637983400000000003447451684'},
  'ShardId': 'shardId-00000001560342912772-46b7356b'},
 {'ParentShardId': 'shardId-00000001560330042571-05db45b1',
  'SequenceNumberRange': {'StartingSequenceNumber': '2637969900000000035651597823'},
  'ShardId': 'shardId-00000001560343013811-47406cbf'},
 {'ParentShardId': 'shardId-00000001560330079021-de30e4d9',
  'SequenceNumberRange': {'StartingSequenceNumber': '2637977700000000003612170759'},
  'ShardId': 'shardId-00000001560343144798-ba082171'},
 {'ParentShardId': 'shardId-00000001560327995519-569c81d3',
  'SequenceNumberRange': {'StartingSequenceNumber': '2638017900000000003390456540'},
  'ShardId': 'shardId-00000001560343972355-674be75d'}]

the entry that I actually want is this:

{'ParentShardId': 'shardId-00000001560330042571-05db45b1',
 'SequenceNumberRange': {'StartingSequenceNumber': '2637969900000000035651597823'},
 'ShardId': 'shardId-00000001560343013811-47406cbf'}

the entry above is the most recent child of the following entry:

{'SequenceNumberRange': {'EndingSequenceNumber': '2633238500000000007213849718',
                          'StartingSequenceNumber': '2633238500000000007213849718'},
  'ShardId': 'shardId-00000001560257151491-87e08366'}

and that entry has lost of children.

so I need to nest all the children underneath their parents and then sort the list and the list of children.

Does that make any sense? ... I haven't included any code because I don't know how to approach this. Any help is appreciated!

benjamin
  • 3
  • 2
  • What do you mean by "children have to be nested under their parent"? Just be directly next to each other in the list, or have a nested list of children in the dictionary of the parent? – Balázs Kovacsics Jun 12 '19 at 15:40
  • a nested list of children in the dictionary of the parent. So there would be a new key probably of 'Child' that would be an array of all the children for that parent. – benjamin Jun 12 '19 at 16:32

0 Answers0