No more sleepless nights due to a nested dict, json, list or whatsoever
A convenient way to handle nested iterables! Works only with Python 3.9 and up!
Updates
2022/09/30: Fixed some problems with ProtectedDict and ProtectedList,ProtectedTuple
2022/09/30: Can be used as a generator now: from flatten_any_dict_iterable_or_whatsoever import fla_tu
2022/09/30: New functions: get_from_original_iter,set_in_original_iter, create_random_dict
2022/09/30: Added doc strings
How to use the new functions get_from_original_iter,set_in_original_iter,
data={'level1': {'t1': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
....]
list(fla_tu(data))
[(5, ('level1', 't1', 's1', 'col1')),
(4, ('level1', 't1', 's1', 'col2')),
(4, ('level1', 't1', 's1', 'col3')),
(9, ('level1', 't1', 's1', 'col4')),
....]
#After having flattened the iterable using fla_tu(), you will have a list of tuples:
#You can use now:
get_from_original_iter(iterable=data, keys=('level1', 't1', 's1', 'col1'))
Out[6]: 5
#to access the values.
set_in_original_iter(iterable=data, keys=('level1', 't1', 's1', 'col1'), value=1000000000000000000)
#to change values of the ORIGINAL ITERABLE!.
Out[8]:
{'level1': {'t1': {'s1': {'col1': 1000000000000000000,
'col2': 4,
'col3': 4,
'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
THIS FUNCTION RETURNS >>>NONE<<<
BECAUSE IT CHANGES THE ORIGINAL ITERABLE!
BE CAREFUL WHAT YOU ARE DOING!!
#DON'T USE data=set_in_original_iter(iterable=data, keys=('level1', 't1', 's1', 'col1'), value=1000000000000000000)
#If you still need the original data, use:
from copy import deepcopy
data2 = deepcopy(data)
list(fla_tu(data))
set_in_original_iter(iterable=data, keys=('level1', 't1', 's1', 'col1'), value=1000000000000000000)
data will be changed
data2 remains unchanged
from flatten_any_dict_iterable_or_whatsoever import ProtectedList,ProtectedDict,ProtectedTuple
from flatten_any_dict_iterable_or_whatsoever import fla_tu
#without protection
data={'level1': {'t1': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
't3': {'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},
's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},
's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},
's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}},
'level2': {'t1': {'s1': {'col1': 5, 'col2': 4, 'col3': 9, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 5},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 13},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 20}},
't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
't3': {'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},
's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},
's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},
's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}}}
pprint(list(fla_tu(data)))
print('------------------------------------------')
#with protection
data={'level1': {'t1': {'s1': ProtectedDict({'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}),
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
't3': ProtectedDict({'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},
's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},
's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},
's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}})},
'level2': {'t1': {'s1': {'col1': 5, 'col2': 4, 'col3': 9, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 5},
's3': {'col1': 11, 'col2': ProtectedList([8,3,5,23,'342342']), 'col3': 2, 'col4': 13},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 20}},
't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
't3': {'s1': {'col1': 1, 'col2': (2,3,4,5), 'col3': ProtectedTuple((2,3,4,5,'32123')), 'col4': 4},
's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},
's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},
's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}}}
pprint(list(list(fla_tu(data)))) #Without protection
[(5, ('level1', 't1', 's1', 'col1')),
(4, ('level1', 't1', 's1', 'col2')),
(4, ('level1', 't1', 's1', 'col3')),
(9, ('level1', 't1', 's1', 'col4')),
(1, ('level1', 't1', 's2', 'col1')),
(5, ('level1', 't1', 's2', 'col2')),
(4, ('level1', 't1', 's2', 'col3')),
(8, ('level1', 't1', 's2', 'col4')),
(11, ('level1', 't1', 's3', 'col1')),
(8, ('level1', 't1', 's3', 'col2')),
(2, ('level1', 't1', 's3', 'col3')),
(9, ('level1', 't1', 's3', 'col4')),
(5, ('level1', 't1', 's4', 'col1')),
(4, ('level1', 't1', 's4', 'col2')),
(4, ('level1', 't1', 's4', 'col3')),
(9, ('level1', 't1', 's4', 'col4')),
(5, ('level1', 't2', 's1', 'col1')),
(4, ('level1', 't2', 's1', 'col2')),
(4, ('level1', 't2', 's1', 'col3')),
(9, ('level1', 't2', 's1', 'col4')),
(1, ('level1', 't2', 's2', 'col1')),
(5, ('level1', 't2', 's2', 'col2')),
(4, ('level1', 't2', 's2', 'col3')),
(8, ('level1', 't2', 's2', 'col4')),
(11, ('level1', 't2', 's3', 'col1')),
(8, ('level1', 't2', 's3', 'col2')),
(2, ('level1', 't2', 's3', 'col3')),
(9, ('level1', 't2', 's3', 'col4')),
(5, ('level1', 't2', 's4', 'col1')),
(4, ('level1', 't2', 's4', 'col2')),
(4, ('level1', 't2', 's4', 'col3')),
(9, ('level1', 't2', 's4', 'col4')),
(1, ('level1', 't3', 's1', 'col1')),
(2, ('level1', 't3', 's1', 'col2')),
(3, ('level1', 't3', 's1', 'col3')),
(4, ('level1', 't3', 's1', 'col4')),
(5, ('level1', 't3', 's2', 'col1')),
(6, ('level1', 't3', 's2', 'col2')),
(7, ('level1', 't3', 's2', 'col3')),
(8, ('level1', 't3', 's2', 'col4')),
(9, ('level1', 't3', 's3', 'col1')),
(10, ('level1', 't3', 's3', 'col2')),
(11, ('level1', 't3', 's3', 'col3')),
(12, ('level1', 't3', 's3', 'col4')),
(13, ('level1', 't3', 's4', 'col1')),
(14, ('level1', 't3', 's4', 'col2')),
(15, ('level1', 't3', 's4', 'col3')),
(16, ('level1', 't3', 's4', 'col4')),
(5, ('level2', 't1', 's1', 'col1')),
(4, ('level2', 't1', 's1', 'col2')),
(9, ('level2', 't1', 's1', 'col3')),
(9, ('level2', 't1', 's1', 'col4')),
(1, ('level2', 't1', 's2', 'col1')),
(5, ('level2', 't1', 's2', 'col2')),
(4, ('level2', 't1', 's2', 'col3')),
(5, ('level2', 't1', 's2', 'col4')),
(11, ('level2', 't1', 's3', 'col1')),
(8, ('level2', 't1', 's3', 'col2')),
(2, ('level2', 't1', 's3', 'col3')),
(13, ('level2', 't1', 's3', 'col4')),
(5, ('level2', 't1', 's4', 'col1')),
(4, ('level2', 't1', 's4', 'col2')),
(4, ('level2', 't1', 's4', 'col3')),
(20, ('level2', 't1', 's4', 'col4')),
(5, ('level2', 't2', 's1', 'col1')),
(4, ('level2', 't2', 's1', 'col2')),
(4, ('level2', 't2', 's1', 'col3')),
(9, ('level2', 't2', 's1', 'col4')),
(1, ('level2', 't2', 's2', 'col1')),
(5, ('level2', 't2', 's2', 'col2')),
(4, ('level2', 't2', 's2', 'col3')),
(8, ('level2', 't2', 's2', 'col4')),
(11, ('level2', 't2', 's3', 'col1')),
(8, ('level2', 't2', 's3', 'col2')),
(2, ('level2', 't2', 's3', 'col3')),
(9, ('level2', 't2', 's3', 'col4')),
(5, ('level2', 't2', 's4', 'col1')),
(4, ('level2', 't2', 's4', 'col2')),
(4, ('level2', 't2', 's4', 'col3')),
(9, ('level2', 't2', 's4', 'col4')),
(1, ('level2', 't3', 's1', 'col1')),
(2, ('level2', 't3', 's1', 'col2')),
(3, ('level2', 't3', 's1', 'col3')),
(4, ('level2', 't3', 's1', 'col4')),
(5, ('level2', 't3', 's2', 'col1')),
(6, ('level2', 't3', 's2', 'col2')),
(7, ('level2', 't3', 's2', 'col3')),
(8, ('level2', 't3', 's2', 'col4')),
(9, ('level2', 't3', 's3', 'col1')),
(10, ('level2', 't3', 's3', 'col2')),
(11, ('level2', 't3', 's3', 'col3')),
(12, ('level2', 't3', 's3', 'col4')),
(13, ('level2', 't3', 's4', 'col1')),
(14, ('level2', 't3', 's4', 'col2')),
(15, ('level2', 't3', 's4', 'col3')),
(16, ('level2', 't3', 's4', 'col4'))]
------------------------------------------ #With protection
[({'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}, ('level1', 't1', 's1')),
(1, ('level1', 't1', 's2', 'col1')),
(5, ('level1', 't1', 's2', 'col2')),
(4, ('level1', 't1', 's2', 'col3')),
(8, ('level1', 't1', 's2', 'col4')),
(11, ('level1', 't1', 's3', 'col1')),
(8, ('level1', 't1', 's3', 'col2')),
(2, ('level1', 't1', 's3', 'col3')),
(9, ('level1', 't1', 's3', 'col4')),
(5, ('level1', 't1', 's4', 'col1')),
(4, ('level1', 't1', 's4', 'col2')),
(4, ('level1', 't1', 's4', 'col3')),
(9, ('level1', 't1', 's4', 'col4')),
(5, ('level1', 't2', 's1', 'col1')),
(4, ('level1', 't2', 's1', 'col2')),
(4, ('level1', 't2', 's1', 'col3')),
(9, ('level1', 't2', 's1', 'col4')),
(1, ('level1', 't2', 's2', 'col1')),
(5, ('level1', 't2', 's2', 'col2')),
(4, ('level1', 't2', 's2', 'col3')),
(8, ('level1', 't2', 's2', 'col4')),
(11, ('level1', 't2', 's3', 'col1')),
(8, ('level1', 't2', 's3', 'col2')),
(2, ('level1', 't2', 's3', 'col3')),
(9, ('level1', 't2', 's3', 'col4')),
(5, ('level1', 't2', 's4', 'col1')),
(4, ('level1', 't2', 's4', 'col2')),
(4, ('level1', 't2', 's4', 'col3')),
(9, ('level1', 't2', 's4', 'col4')),
({'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},
's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},
's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},
's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}},
('level1', 't3')),
(5, ('level2', 't1', 's1', 'col1')),
(4, ('level2', 't1', 's1', 'col2')),
(9, ('level2', 't1', 's1', 'col3')),
(9, ('level2', 't1', 's1', 'col4')),
(1, ('level2', 't1', 's2', 'col1')),
(5, ('level2', 't1', 's2', 'col2')),
(4, ('level2', 't1', 's2', 'col3')),
(5, ('level2', 't1', 's2', 'col4')),
(11, ('level2', 't1', 's3', 'col1')),
([8, 3, 5, 23, '342342'], ('level2', 't1', 's3', 'col2')),
(2, ('level2', 't1', 's3', 'col3')),
(13, ('level2', 't1', 's3', 'col4')),
(5, ('level2', 't1', 's4', 'col1')),
(4, ('level2', 't1', 's4', 'col2')),
(4, ('level2', 't1', 's4', 'col3')),
(20, ('level2', 't1', 's4', 'col4')),
(5, ('level2', 't2', 's1', 'col1')),
(4, ('level2', 't2', 's1', 'col2')),
(4, ('level2', 't2', 's1', 'col3')),
(9, ('level2', 't2', 's1', 'col4')),
(1, ('level2', 't2', 's2', 'col1')),
(5, ('level2', 't2', 's2', 'col2')),
(4, ('level2', 't2', 's2', 'col3')),
(8, ('level2', 't2', 's2', 'col4')),
(11, ('level2', 't2', 's3', 'col1')),
(8, ('level2', 't2', 's3', 'col2')),
(2, ('level2', 't2', 's3', 'col3')),
(9, ('level2', 't2', 's3', 'col4')),
(5, ('level2', 't2', 's4', 'col1')),
(4, ('level2', 't2', 's4', 'col2')),
(4, ('level2', 't2', 's4', 'col3')),
(9, ('level2', 't2', 's4', 'col4')),
(1, ('level2', 't3', 's1', 'col1')),
(2, ('level2', 't3', 's1', 'col2', 0)),
(3, ('level2', 't3', 's1', 'col2', 1)),
(4, ('level2', 't3', 's1', 'col2', 2)),
(5, ('level2', 't3', 's1', 'col2', 3)),
((2, 3, 4, 5, '32123'), ('level2', 't3', 's1', 'col3')),
(4, ('level2', 't3', 's1', 'col4')),
(5, ('level2', 't3', 's2', 'col1')),
(6, ('level2', 't3', 's2', 'col2')),
(7, ('level2', 't3', 's2', 'col3')),
(8, ('level2', 't3', 's2', 'col4')),
(9, ('level2', 't3', 's3', 'col1')),
(10, ('level2', 't3', 's3', 'col2')),
(11, ('level2', 't3', 's3', 'col3')),
(12, ('level2', 't3', 's3', 'col4')),
(13, ('level2', 't3', 's4', 'col1')),
(14, ('level2', 't3', 's4', 'col2')),
(15, ('level2', 't3', 's4', 'col3')),
(16, ('level2', 't3', 's4', 'col4'))]
Install
pip install flatten-any-dict-iterable-or-whatsoever
Usage
from flatten_any_dict_iterable_or_whatsoever import flatten_nested_something_to_list_of_tuples
flatten_nested_something_to_list_of_tuples(nested_iter_that_drives_me_crazy) #That's it! :)
Examples
https://stackoverflow.com/questions/72990265/convert-nested-list-in-dictionary-to-dataframe/72990346
before:
{'a': 'test',
'b': 1657,
'c': 'asset',
'd': [['2089', '0.0'], ['2088', '0.0']],
'e': [['2088', '0.0'], ['2088', '0.0'], ['2088', '0.00']],
'f': [['2088', '0.0', 'x', 'foo'],
['2088', '0.0', 'bar', 'i'],
['2088', '0.00', 'z', '0.2']],
'x': ['test1', 'test2']}
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: test keys: ('a',)
value: 1657 keys: ('b',)
value: asset keys: ('c',)
value: 2089 keys: ('d', 0)
value: 0.0 keys: ('d', 0)
value: 2088 keys: ('d', 1)
value: 0.0 keys: ('d', 1)
value: 2088 keys: ('e', 0)
value: 0.0 keys: ('e', 0)
value: 2088 keys: ('e', 1)
value: 0.0 keys: ('e', 1)
value: 2088 keys: ('e', 2)
value: 0.00 keys: ('e', 2)
value: 2088 keys: ('f', 0)
value: 0.0 keys: ('f', 0)
value: x keys: ('f', 0)
value: foo keys: ('f', 0)
value: 2088 keys: ('f', 1)
value: 0.0 keys: ('f', 1)
value: bar keys: ('f', 1)
value: i keys: ('f', 1)
value: 2088 keys: ('f', 2)
value: 0.00 keys: ('f', 2)
value: z keys: ('f', 2)
value: 0.2 keys: ('f', 2)
value: test1 keys: ('x',)
value: test2 keys: ('x',)
https://stackoverflow.com/questions/73430585/how-to-convert-a-list-of-nested-dictionaries-includes-tuples-as-a-dataframe
before:
[{'cb': ({'ID': 1, 'Name': 'A', 'num': 50}, {'ID': 2, 'Name': 'A', 'num': 68}),
'final_value': 118},
{'cb': ({'ID': 1, 'Name': 'A', 'num': 50}, {'ID': 4, 'Name': 'A', 'num': 67}),
'final_value': 117},
{'cb': ({'ID': 1, 'Name': 'A', 'num': 50}, {'ID': 6, 'Name': 'A', 'num': 67}),
'final_value': 117}]
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: A keys: (0, 'cb', 0, 'Name')
value: 1 keys: (0, 'cb', 0, 'ID')
value: 50 keys: (0, 'cb', 0, 'num')
value: A keys: (0, 'cb', 1, 'Name')
value: 2 keys: (0, 'cb', 1, 'ID')
value: 68 keys: (0, 'cb', 1, 'num')
value: 118 keys: (0, 'final_value')
value: A keys: (1, 'cb', 0, 'Name')
value: 1 keys: (1, 'cb', 0, 'ID')
value: 50 keys: (1, 'cb', 0, 'num')
value: A keys: (1, 'cb', 1, 'Name')
value: 4 keys: (1, 'cb', 1, 'ID')
value: 67 keys: (1, 'cb', 1, 'num')
value: 117 keys: (1, 'final_value')
value: A keys: (2, 'cb', 0, 'Name')
value: 1 keys: (2, 'cb', 0, 'ID')
value: 50 keys: (2, 'cb', 0, 'num')
value: A keys: (2, 'cb', 1, 'Name')
value: 6 keys: (2, 'cb', 1, 'ID')
value: 67 keys: (2, 'cb', 1, 'num')
value: 117 keys: (2, 'final_value')
https://stackoverflow.com/questions/69943509/problems-when-flatten-a-dict
before:
[{'application_contacts': [{'adress': 'X', 'email': 'test@test.com'}],
'application_details': {'email': None, 'phone': None},
'employer': {'Name': 'Nom', 'email': None},
'id': '1'},
{'application_contacts': [{'adress': 'Z', 'email': None}],
'application_details': {'email': 'testy@test_a.com', 'phone': None},
'employer': {'Name': 'Nom', 'email': None},
'id': '2'},
{'application_contacts': [{'adress': 'Y', 'email': None}],
'application_details': {'email': 'testy@test_a.com', 'phone': None},
'employer': {'Name': 'Nom', 'email': None},
'id': '3'}]
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: 1 keys: (0, 'id')
value: None keys: (0, 'application_details', 'phone')
value: None keys: (0, 'application_details', 'email')
value: Nom keys: (0, 'employer', 'Name')
value: None keys: (0, 'employer', 'email')
value: test@test.com keys: (0, 'application_contacts', 0, 'email')
value: X keys: (0, 'application_contacts', 0, 'adress')
value: 2 keys: (1, 'id')
value: None keys: (1, 'application_details', 'phone')
value: testy@test_a.com keys: (1, 'application_details', 'email')
value: Nom keys: (1, 'employer', 'Name')
value: None keys: (1, 'employer', 'email')
value: None keys: (1, 'application_contacts', 0, 'email')
value: Z keys: (1, 'application_contacts', 0, 'adress')
value: 3 keys: (2, 'id')
value: None keys: (2, 'application_details', 'phone')
value: testy@test_a.com keys: (2, 'application_details', 'email')
value: Nom keys: (2, 'employer', 'Name')
value: None keys: (2, 'employer', 'email')
value: None keys: (2, 'application_contacts', 0, 'email')
value: Y keys: (2, 'application_contacts', 0, 'adress')
https://stackoverflow.com/questions/62765371/convert-nested-dataframe-to-a-simple-dataframeframe
before:
{'A': [1, 2, 3],
'B': [4, 5, 6],
'departure': [{'actual': None,
'actual_runway': None,
'airport': 'Findel',
'delay': None,
'estimated': '2020-07-07T06:30:00+00:00',
'estimated_runway': None,
'gate': None,
'iata': 'LUX',
'icao': 'ELLX',
'scheduled': '2020-07-07T06:30:00+00:00',
'terminal': None,
'timezone': 'Europe/Luxembourg'},
{'actual': None,
'actual_runway': None,
'airport': 'Findel',
'delay': None,
'estimated': '2020-07-07T06:30:00+00:00',
'estimated_runway': None,
'gate': None,
'iata': 'LUX',
'icao': 'ELLX',
'scheduled': '2020-07-07T06:30:00+00:00',
'terminal': None,
'timezone': 'Europe/Luxembourg'},
{'actual': None,
'actual_runway': None,
'airport': 'Findel',
'delay': None,
'estimated': '2020-07-07T06:30:00+00:00',
'estimated_runway': None,
'gate': None,
'iata': 'LUX',
'icao': 'ELLX',
'scheduled': '2020-07-07T06:30:00+00:00',
'terminal': None,
'timezone': 'Europe/Luxembourg'}]}
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: 1 keys: ('A',)
value: 2 keys: ('A',)
value: 3 keys: ('A',)
value: 4 keys: ('B',)
value: 5 keys: ('B',)
value: 6 keys: ('B',)
value: Findel keys: ('departure', 0, 'airport')
value: Europe/Luxembourg keys: ('departure', 0, 'timezone')
value: LUX keys: ('departure', 0, 'iata')
value: ELLX keys: ('departure', 0, 'icao')
value: None keys: ('departure', 0, 'terminal')
value: None keys: ('departure', 0, 'gate')
value: None keys: ('departure', 0, 'delay')
value: 2020-07-07T06:30:00+00:00 keys: ('departure', 0, 'scheduled')
value: 2020-07-07T06:30:00+00:00 keys: ('departure', 0, 'estimated')
value: None keys: ('departure', 0, 'actual')
value: None keys: ('departure', 0, 'estimated_runway')
value: None keys: ('departure', 0, 'actual_runway')
value: Findel keys: ('departure', 1, 'airport')
value: Europe/Luxembourg keys: ('departure', 1, 'timezone')
value: LUX keys: ('departure', 1, 'iata')
value: ELLX keys: ('departure', 1, 'icao')
value: None keys: ('departure', 1, 'terminal')
value: None keys: ('departure', 1, 'gate')
value: None keys: ('departure', 1, 'delay')
value: 2020-07-07T06:30:00+00:00 keys: ('departure', 1, 'scheduled')
value: 2020-07-07T06:30:00+00:00 keys: ('departure', 1, 'estimated')
value: None keys: ('departure', 1, 'actual')
value: None keys: ('departure', 1, 'estimated_runway')
value: None keys: ('departure', 1, 'actual_runway')
value: Findel keys: ('departure', 2, 'airport')
value: Europe/Luxembourg keys: ('departure', 2, 'timezone')
value: LUX keys: ('departure', 2, 'iata')
value: ELLX keys: ('departure', 2, 'icao')
value: None keys: ('departure', 2, 'terminal')
value: None keys: ('departure', 2, 'gate')
value: None keys: ('departure', 2, 'delay')
value: 2020-07-07T06:30:00+00:00 keys: ('departure', 2, 'scheduled')
value: 2020-07-07T06:30:00+00:00 keys: ('departure', 2, 'estimated')
value: None keys: ('departure', 2, 'actual')
value: None keys: ('departure', 2, 'estimated_runway')
value: None keys: ('departure', 2, 'actual_runway')
https://stackoverflow.com/questions/64359762/constructing-a-pandas-dataframe-with-columns-and-sub-columns-from-nested-diction
before:
{'level1': {'t1': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
't3': {'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},
's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},
's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},
's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}},
'level2': {'t1': {'s1': {'col1': 5, 'col2': 4, 'col3': 9, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 5},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 13},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 20}},
't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
't3': {'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},
's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},
's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},
's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}}}
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: 5 keys: ('level1', 't1', 's1', 'col1')
value: 4 keys: ('level1', 't1', 's1', 'col2')
value: 4 keys: ('level1', 't1', 's1', 'col3')
value: 9 keys: ('level1', 't1', 's1', 'col4')
value: 1 keys: ('level1', 't1', 's2', 'col1')
value: 5 keys: ('level1', 't1', 's2', 'col2')
value: 4 keys: ('level1', 't1', 's2', 'col3')
value: 8 keys: ('level1', 't1', 's2', 'col4')
value: 11 keys: ('level1', 't1', 's3', 'col1')
value: 8 keys: ('level1', 't1', 's3', 'col2')
value: 2 keys: ('level1', 't1', 's3', 'col3')
value: 9 keys: ('level1', 't1', 's3', 'col4')
value: 5 keys: ('level1', 't1', 's4', 'col1')
value: 4 keys: ('level1', 't1', 's4', 'col2')
value: 4 keys: ('level1', 't1', 's4', 'col3')
value: 9 keys: ('level1', 't1', 's4', 'col4')
value: 5 keys: ('level1', 't2', 's1', 'col1')
value: 4 keys: ('level1', 't2', 's1', 'col2')
value: 4 keys: ('level1', 't2', 's1', 'col3')
value: 9 keys: ('level1', 't2', 's1', 'col4')
value: 1 keys: ('level1', 't2', 's2', 'col1')
value: 5 keys: ('level1', 't2', 's2', 'col2')
value: 4 keys: ('level1', 't2', 's2', 'col3')
value: 8 keys: ('level1', 't2', 's2', 'col4')
value: 11 keys: ('level1', 't2', 's3', 'col1')
value: 8 keys: ('level1', 't2', 's3', 'col2')
value: 2 keys: ('level1', 't2', 's3', 'col3')
value: 9 keys: ('level1', 't2', 's3', 'col4')
value: 5 keys: ('level1', 't2', 's4', 'col1')
value: 4 keys: ('level1', 't2', 's4', 'col2')
value: 4 keys: ('level1', 't2', 's4', 'col3')
value: 9 keys: ('level1', 't2', 's4', 'col4')
value: 1 keys: ('level1', 't3', 's1', 'col1')
value: 2 keys: ('level1', 't3', 's1', 'col2')
value: 3 keys: ('level1', 't3', 's1', 'col3')
value: 4 keys: ('level1', 't3', 's1', 'col4')
value: 5 keys: ('level1', 't3', 's2', 'col1')
value: 6 keys: ('level1', 't3', 's2', 'col2')
value: 7 keys: ('level1', 't3', 's2', 'col3')
value: 8 keys: ('level1', 't3', 's2', 'col4')
value: 9 keys: ('level1', 't3', 's3', 'col1')
value: 10 keys: ('level1', 't3', 's3', 'col2')
value: 11 keys: ('level1', 't3', 's3', 'col3')
value: 12 keys: ('level1', 't3', 's3', 'col4')
value: 13 keys: ('level1', 't3', 's4', 'col1')
value: 14 keys: ('level1', 't3', 's4', 'col2')
value: 15 keys: ('level1', 't3', 's4', 'col3')
value: 16 keys: ('level1', 't3', 's4', 'col4')
value: 5 keys: ('level2', 't1', 's1', 'col1')
value: 4 keys: ('level2', 't1', 's1', 'col2')
value: 9 keys: ('level2', 't1', 's1', 'col3')
value: 9 keys: ('level2', 't1', 's1', 'col4')
value: 1 keys: ('level2', 't1', 's2', 'col1')
value: 5 keys: ('level2', 't1', 's2', 'col2')
value: 4 keys: ('level2', 't1', 's2', 'col3')
value: 5 keys: ('level2', 't1', 's2', 'col4')
value: 11 keys: ('level2', 't1', 's3', 'col1')
value: 8 keys: ('level2', 't1', 's3', 'col2')
value: 2 keys: ('level2', 't1', 's3', 'col3')
value: 13 keys: ('level2', 't1', 's3', 'col4')
value: 5 keys: ('level2', 't1', 's4', 'col1')
value: 4 keys: ('level2', 't1', 's4', 'col2')
value: 4 keys: ('level2', 't1', 's4', 'col3')
value: 20 keys: ('level2', 't1', 's4', 'col4')
value: 5 keys: ('level2', 't2', 's1', 'col1')
value: 4 keys: ('level2', 't2', 's1', 'col2')
value: 4 keys: ('level2', 't2', 's1', 'col3')
value: 9 keys: ('level2', 't2', 's1', 'col4')
value: 1 keys: ('level2', 't2', 's2', 'col1')
value: 5 keys: ('level2', 't2', 's2', 'col2')
value: 4 keys: ('level2', 't2', 's2', 'col3')
value: 8 keys: ('level2', 't2', 's2', 'col4')
value: 11 keys: ('level2', 't2', 's3', 'col1')
value: 8 keys: ('level2', 't2', 's3', 'col2')
value: 2 keys: ('level2', 't2', 's3', 'col3')
value: 9 keys: ('level2', 't2', 's3', 'col4')
value: 5 keys: ('level2', 't2', 's4', 'col1')
value: 4 keys: ('level2', 't2', 's4', 'col2')
value: 4 keys: ('level2', 't2', 's4', 'col3')
value: 9 keys: ('level2', 't2', 's4', 'col4')
value: 1 keys: ('level2', 't3', 's1', 'col1')
value: 2 keys: ('level2', 't3', 's1', 'col2')
value: 3 keys: ('level2', 't3', 's1', 'col3')
value: 4 keys: ('level2', 't3', 's1', 'col4')
value: 5 keys: ('level2', 't3', 's2', 'col1')
value: 6 keys: ('level2', 't3', 's2', 'col2')
value: 7 keys: ('level2', 't3', 's2', 'col3')
value: 8 keys: ('level2', 't3', 's2', 'col4')
value: 9 keys: ('level2', 't3', 's3', 'col1')
value: 10 keys: ('level2', 't3', 's3', 'col2')
value: 11 keys: ('level2', 't3', 's3', 'col3')
value: 12 keys: ('level2', 't3', 's3', 'col4')
value: 13 keys: ('level2', 't3', 's4', 'col1')
value: 14 keys: ('level2', 't3', 's4', 'col2')
value: 15 keys: ('level2', 't3', 's4', 'col3')
value: 16 keys: ('level2', 't3', 's4', 'col4')
https://stackoverflow.com/questions/61984148/how-to-handle-nested-lists-and-dictionaries-in-pandas-dataframe
before:
{'critic_reviews': [{'review_critic': 'XYZ', 'review_score': 90},
{'review_critic': 'ABC', 'review_score': 90},
{'review_critic': '123', 'review_score': 90}],
'genres': ['Sports', 'Golf'],
'score': 85,
'title': 'Golf Simulator',
'url': 'http://example.com/golf-simulator'}
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: Golf Simulator keys: ('title',)
value: Sports keys: ('genres',)
value: Golf keys: ('genres',)
value: 85 keys: ('score',)
value: XYZ keys: ('critic_reviews', 0, 'review_critic')
value: 90 keys: ('critic_reviews', 0, 'review_score')
value: ABC keys: ('critic_reviews', 1, 'review_critic')
value: 90 keys: ('critic_reviews', 1, 'review_score')
value: 123 keys: ('critic_reviews', 2, 'review_critic')
value: 90 keys: ('critic_reviews', 2, 'review_score')
value: http://example.com/golf-simulator keys: ('url',)
https://stackoverflow.com/questions/72146094/problems-matching-values-from-nested-dictionary
before:
{'_links': {'next': None, 'prev': None},
'limit': 250,
'offset': 0,
'runs': [{'assignedto_id': None,
'blocked_count': 0,
'completed_on': None,
'config': None,
'config_ids': [],
'created_by': 1,
'created_on': 1651790693,
'custom_status1_count': 0,
'custom_status2_count': 0,
'custom_status3_count': 0,
'custom_status4_count': 0,
'custom_status5_count': 0,
'custom_status6_count': 0,
'custom_status7_count': 0,
'description': None,
'failed_count': 1,
'id': 13,
'include_all': False,
'is_completed': False,
'milestone_id': None,
'name': '2022-05-05-testrun',
'passed_count': 2,
'plan_id': None,
'project_id': 1,
'refs': None,
'retest_count': 0,
'suite_id': 1,
'untested_count': 0,
'updated_on': 1651790693,
'url': 'https://xxxxxxxxxx.testrail.io/index.php?/runs/view/13'},
{'assignedto_id': None,
'blocked_count': 0,
'completed_on': 1650989972,
'config': None,
'config_ids': [],
'created_by': 5,
'created_on': 1650966329,
'custom_status1_count': 0,
'custom_status2_count': 0,
'custom_status3_count': 0,
'custom_status4_count': 0,
'custom_status5_count': 0,
'custom_status6_count': 0,
'custom_status7_count': 0,
'description': None,
'failed_count': 0,
'id': 9,
'include_all': False,
'is_completed': True,
'milestone_id': None,
'name': 'This is a new test run',
'passed_count': 0,
'plan_id': None,
'project_id': 1,
'refs': None,
'retest_count': 0,
'suite_id': 1,
'untested_count': 3,
'updated_on': 1650966329,
'url': 'https://xxxxxxxxxx.testrail.io/index.php?/runs/view/9'}],
'size': 2}
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: None keys: ('_links', 'next')
value: None keys: ('_links', 'prev')
value: 250 keys: ('limit',)
value: 0 keys: ('offset',)
value: None keys: ('runs', 0, 'assignedto_id')
value: 0 keys: ('runs', 0, 'blocked_count')
value: None keys: ('runs', 0, 'completed_on')
value: None keys: ('runs', 0, 'config')
value: 1 keys: ('runs', 0, 'created_by')
value: 1651790693 keys: ('runs', 0, 'created_on')
value: 0 keys: ('runs', 0, 'custom_status1_count')
value: 0 keys: ('runs', 0, 'custom_status2_count')
value: 0 keys: ('runs', 0, 'custom_status3_count')
value: 0 keys: ('runs', 0, 'custom_status4_count')
value: 0 keys: ('runs', 0, 'custom_status5_count')
value: 0 keys: ('runs', 0, 'custom_status6_count')
value: 0 keys: ('runs', 0, 'custom_status7_count')
value: None keys: ('runs', 0, 'description')
value: 1 keys: ('runs', 0, 'failed_count')
value: 13 keys: ('runs', 0, 'id')
value: False keys: ('runs', 0, 'include_all')
value: False keys: ('runs', 0, 'is_completed')
value: None keys: ('runs', 0, 'milestone_id')
value: 2022-05-05-testrun keys: ('runs', 0, 'name')
value: 2 keys: ('runs', 0, 'passed_count')
value: None keys: ('runs', 0, 'plan_id')
value: 1 keys: ('runs', 0, 'project_id')
value: None keys: ('runs', 0, 'refs')
value: 0 keys: ('runs', 0, 'retest_count')
value: 1 keys: ('runs', 0, 'suite_id')
value: 0 keys: ('runs', 0, 'untested_count')
value: 1651790693 keys: ('runs', 0, 'updated_on')
value: https://xxxxxxxxxx.testrail.io/index.php?/runs/view/13 keys: ('runs', 0, 'url')
value: None keys: ('runs', 1, 'assignedto_id')
value: 0 keys: ('runs', 1, 'blocked_count')
value: 1650989972 keys: ('runs', 1, 'completed_on')
value: None keys: ('runs', 1, 'config')
value: 5 keys: ('runs', 1, 'created_by')
value: 1650966329 keys: ('runs', 1, 'created_on')
value: 0 keys: ('runs', 1, 'custom_status1_count')
value: 0 keys: ('runs', 1, 'custom_status2_count')
value: 0 keys: ('runs', 1, 'custom_status3_count')
value: 0 keys: ('runs', 1, 'custom_status4_count')
value: 0 keys: ('runs', 1, 'custom_status5_count')
value: 0 keys: ('runs', 1, 'custom_status6_count')
value: 0 keys: ('runs', 1, 'custom_status7_count')
value: None keys: ('runs', 1, 'description')
value: 0 keys: ('runs', 1, 'failed_count')
value: 9 keys: ('runs', 1, 'id')
value: False keys: ('runs', 1, 'include_all')
value: True keys: ('runs', 1, 'is_completed')
value: None keys: ('runs', 1, 'milestone_id')
value: This is a new test run keys: ('runs', 1, 'name')
value: 0 keys: ('runs', 1, 'passed_count')
value: None keys: ('runs', 1, 'plan_id')
value: 1 keys: ('runs', 1, 'project_id')
value: None keys: ('runs', 1, 'refs')
value: 0 keys: ('runs', 1, 'retest_count')
value: 1 keys: ('runs', 1, 'suite_id')
value: 3 keys: ('runs', 1, 'untested_count')
value: 1650966329 keys: ('runs', 1, 'updated_on')
value: https://xxxxxxxxxx.testrail.io/index.php?/runs/view/9 keys: ('runs', 1, 'url')
value: 2 keys: ('size',)
https://stackoverflow.com/questions/73708706/how-to-get-values-from-list-of-nested-dictionaries/73839430#73839430
before:
{'results': [{'end_time': '2021-01-21',
'key': 'q1',
'result_type': 'multipleChoice',
'start_time': '2021-01-21',
'value': ['1']},
{'end_time': '2021-01-21',
'key': 'q2',
'result_type': 'multipleChoice',
'start_time': '2021-01-21',
'value': ['False']},
{'end_time': '2021-01-21',
'key': 'q3',
'result_type': 'multipleChoice',
'start_time': '2021-01-21',
'value': ['3']},
{'end_time': '2021-01-21',
'key': 'q4',
'result_type': 'multipleChoice',
'start_time': '2021-01-21',
'value': ['3']}]}
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: q1 keys: ('results', 0, 'key')
value: 1 keys: ('results', 0, 'value')
value: 2021-01-21 keys: ('results', 0, 'end_time')
value: 2021-01-21 keys: ('results', 0, 'start_time')
value: multipleChoice keys: ('results', 0, 'result_type')
value: q2 keys: ('results', 1, 'key')
value: False keys: ('results', 1, 'value')
value: 2021-01-21 keys: ('results', 1, 'end_time')
value: 2021-01-21 keys: ('results', 1, 'start_time')
value: multipleChoice keys: ('results', 1, 'result_type')
value: q3 keys: ('results', 2, 'key')
value: 3 keys: ('results', 2, 'value')
value: 2021-01-21 keys: ('results', 2, 'end_time')
value: 2021-01-21 keys: ('results', 2, 'start_time')
value: multipleChoice keys: ('results', 2, 'result_type')
value: q4 keys: ('results', 3, 'key')
value: 3 keys: ('results', 3, 'value')
value: 2021-01-21 keys: ('results', 3, 'end_time')
value: 2021-01-21 keys: ('results', 3, 'start_time')
value: multipleChoice keys: ('results', 3, 'result_type')
https://stackoverflow.com/questions/70811820/pandas-multiindex-from-nested-dictionary
before:
{'A': [1, 2],
'B': [2, 3],
'Coords': [{'X': [1, 2, 3], 'Y': [1, 2, 3], 'Z': [1, 2, 3]},
{'X': [2, 3], 'Y': [2, 3], 'Z': [2, 3]}]}
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: 1 keys: ('A',)
value: 2 keys: ('A',)
value: 2 keys: ('B',)
value: 3 keys: ('B',)
value: 1 keys: ('Coords', 0, 'X')
value: 2 keys: ('Coords', 0, 'X')
value: 3 keys: ('Coords', 0, 'X')
value: 1 keys: ('Coords', 0, 'Y')
value: 2 keys: ('Coords', 0, 'Y')
value: 3 keys: ('Coords', 0, 'Y')
value: 1 keys: ('Coords', 0, 'Z')
value: 2 keys: ('Coords', 0, 'Z')
value: 3 keys: ('Coords', 0, 'Z')
value: 2 keys: ('Coords', 1, 'X')
value: 3 keys: ('Coords', 1, 'X')
value: 2 keys: ('Coords', 1, 'Y')
value: 3 keys: ('Coords', 1, 'Y')
value: 2 keys: ('Coords', 1, 'Z')
value: 3 keys: ('Coords', 1, 'Z')
https://stackoverflow.com/questions/72017771/key-error-when-accessing-a-nested-dictionary
before:
[{'blocks': [{'block_id': 'BJNTn',
'text': {'text': 'You have a new message.',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': 'WPn/l',
'text': {'text': '*Heard By*\nFriend',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': '5yp',
'text': {'text': '*Which Direction? *\nNorth',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': 'fKEpF',
'text': {'text': '*Which Destination*\nNew York',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': 'qjAH',
'text': {'text': '*New Customer:*\\Yes',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': 'yt4',
'elements': [{'action_id': '+bc',
'text': {'bar': 'View results',
'emoji': True,
'type': 'plain_text'},
'type': 'button',
'url': 'www.example.com/results'}],
'type': 'actions'},
{'block_id': 'IBr',
'text': {'text': ' ', 'type': 'mrkdwn', 'verbatim': False},
'type': 'section'}],
'bot_id': 'BPD4K3SJW',
'subtype': 'bot_message',
'text': "This content can't be displayed.",
'timestamp': '1650905606.755969',
'type': 'message',
'username': 'admin'},
{'blocks': [{'block_id': 'Smd',
'text': {'text': 'You have a new message.',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': '6YaLt',
'text': {'text': '*Heard By*\nOnline Search',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': 'w3o',
'text': {'text': '*Which Direction: *\nNorth',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': 'PTQ',
'text': {'text': '*Which Destination? *\nMiami',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': 'JCfSP',
'text': {'text': '*New Customer? *\nNo',
'type': 'mrkdwn',
'verbatim': False},
'type': 'section'},
{'block_id': 'yt4',
'elements': [{'action_id': '+bc',
'text': {'bar': 'View results',
'emoji': True,
'type': 'plain_text'},
'type': 'button',
'url': 'www.example.com/results'}],
'type': 'actions'},
{'block_id': 'RJOA',
'text': {'text': ' ', 'type': 'mrkdwn', 'verbatim': False},
'type': 'section'}],
'bot_id': 'BPD4K3SJW',
'subtype': 'bot_message',
'text': "This content can't be displayed.",
'timestamp': '1650899428.077709',
'type': 'message',
'username': 'admin'}]
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: message keys: (0, 'type')
value: bot_message keys: (0, 'subtype')
value: This content can't be displayed. keys: (0, 'text')
value: 1650905606.755969 keys: (0, 'timestamp')
value: admin keys: (0, 'username')
value: BPD4K3SJW keys: (0, 'bot_id')
value: section keys: (0, 'blocks', 0, 'type')
value: BJNTn keys: (0, 'blocks', 0, 'block_id')
value: mrkdwn keys: (0, 'blocks', 0, 'text', 'type')
value: You have a new message. keys: (0, 'blocks', 0, 'text', 'text')
value: False keys: (0, 'blocks', 0, 'text', 'verbatim')
value: section keys: (0, 'blocks', 1, 'type')
value: WPn/l keys: (0, 'blocks', 1, 'block_id')
value: mrkdwn keys: (0, 'blocks', 1, 'text', 'type')
value: *Heard By*
Friend keys: (0, 'blocks', 1, 'text', 'text')
value: False keys: (0, 'blocks', 1, 'text', 'verbatim')
value: section keys: (0, 'blocks', 2, 'type')
value: 5yp keys: (0, 'blocks', 2, 'block_id')
value: mrkdwn keys: (0, 'blocks', 2, 'text', 'type')
value: *Which Direction? *
North keys: (0, 'blocks', 2, 'text', 'text')
value: False keys: (0, 'blocks', 2, 'text', 'verbatim')
value: section keys: (0, 'blocks', 3, 'type')
value: fKEpF keys: (0, 'blocks', 3, 'block_id')
value: mrkdwn keys: (0, 'blocks', 3, 'text', 'type')
value: *Which Destination*
New York keys: (0, 'blocks', 3, 'text', 'text')
value: False keys: (0, 'blocks', 3, 'text', 'verbatim')
value: section keys: (0, 'blocks', 4, 'type')
value: qjAH keys: (0, 'blocks', 4, 'block_id')
value: mrkdwn keys: (0, 'blocks', 4, 'text', 'type')
value: *New Customer:*\Yes keys: (0, 'blocks', 4, 'text', 'text')
value: False keys: (0, 'blocks', 4, 'text', 'verbatim')
value: actions keys: (0, 'blocks', 5, 'type')
value: yt4 keys: (0, 'blocks', 5, 'block_id')
value: button keys: (0, 'blocks', 5, 'elements', 0, 'type')
value: +bc keys: (0, 'blocks', 5, 'elements', 0, 'action_id')
value: plain_text keys: (0, 'blocks', 5, 'elements', 0, 'text', 'type')
value: View results keys: (0, 'blocks', 5, 'elements', 0, 'text', 'bar')
value: True keys: (0, 'blocks', 5, 'elements', 0, 'text', 'emoji')
value: www.example.com/results keys: (0, 'blocks', 5, 'elements', 0, 'url')
value: section keys: (0, 'blocks', 6, 'type')
value: IBr keys: (0, 'blocks', 6, 'block_id')
value: mrkdwn keys: (0, 'blocks', 6, 'text', 'type')
value: keys: (0, 'blocks', 6, 'text', 'text')
value: False keys: (0, 'blocks', 6, 'text', 'verbatim')
value: message keys: (1, 'type')
value: bot_message keys: (1, 'subtype')
value: This content can't be displayed. keys: (1, 'text')
value: 1650899428.077709 keys: (1, 'timestamp')
value: admin keys: (1, 'username')
value: BPD4K3SJW keys: (1, 'bot_id')
value: section keys: (1, 'blocks', 0, 'type')
value: Smd keys: (1, 'blocks', 0, 'block_id')
value: mrkdwn keys: (1, 'blocks', 0, 'text', 'type')
value: You have a new message. keys: (1, 'blocks', 0, 'text', 'text')
value: False keys: (1, 'blocks', 0, 'text', 'verbatim')
value: section keys: (1, 'blocks', 1, 'type')
value: 6YaLt keys: (1, 'blocks', 1, 'block_id')
value: mrkdwn keys: (1, 'blocks', 1, 'text', 'type')
value: *Heard By*
Online Search keys: (1, 'blocks', 1, 'text', 'text')
value: False keys: (1, 'blocks', 1, 'text', 'verbatim')
value: section keys: (1, 'blocks', 2, 'type')
value: w3o keys: (1, 'blocks', 2, 'block_id')
value: mrkdwn keys: (1, 'blocks', 2, 'text', 'type')
value: *Which Direction: *
North keys: (1, 'blocks', 2, 'text', 'text')
value: False keys: (1, 'blocks', 2, 'text', 'verbatim')
value: section keys: (1, 'blocks', 3, 'type')
value: PTQ keys: (1, 'blocks', 3, 'block_id')
value: mrkdwn keys: (1, 'blocks', 3, 'text', 'type')
value: *Which Destination? *
Miami keys: (1, 'blocks', 3, 'text', 'text')
value: False keys: (1, 'blocks', 3, 'text', 'verbatim')
value: section keys: (1, 'blocks', 4, 'type')
value: JCfSP keys: (1, 'blocks', 4, 'block_id')
value: mrkdwn keys: (1, 'blocks', 4, 'text', 'type')
value: *New Customer? *
No keys: (1, 'blocks', 4, 'text', 'text')
value: False keys: (1, 'blocks', 4, 'text', 'verbatim')
value: actions keys: (1, 'blocks', 5, 'type')
value: yt4 keys: (1, 'blocks', 5, 'block_id')
value: button keys: (1, 'blocks', 5, 'elements', 0, 'type')
value: +bc keys: (1, 'blocks', 5, 'elements', 0, 'action_id')
value: plain_text keys: (1, 'blocks', 5, 'elements', 0, 'text', 'type')
value: View results keys: (1, 'blocks', 5, 'elements', 0, 'text', 'bar')
value: True keys: (1, 'blocks', 5, 'elements', 0, 'text', 'emoji')
value: www.example.com/results keys: (1, 'blocks', 5, 'elements', 0, 'url')
value: section keys: (1, 'blocks', 6, 'type')
value: RJOA keys: (1, 'blocks', 6, 'block_id')
value: mrkdwn keys: (1, 'blocks', 6, 'text', 'type')
value: keys: (1, 'blocks', 6, 'text', 'text')
value: False keys: (1, 'blocks', 6, 'text', 'verbatim')
https://stackoverflow.com/questions/73643077/how-to-transform-a-list-of-nested-dictionaries-into-a-data-frame-pd-json-normal
before:
[{'apple': {'price': 4, 'units': 3}},
{'banana': {'price': 2, 'units': 20}},
{'orange': {'price': 5, 'units': 15}}]
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: 3 keys: (0, 'apple', 'units')
value: 4 keys: (0, 'apple', 'price')
value: 20 keys: (1, 'banana', 'units')
value: 2 keys: (1, 'banana', 'price')
value: 15 keys: (2, 'orange', 'units')
value: 5 keys: (2, 'orange', 'price')
https://stackoverflow.com/questions/58110440/opening-nested-dict-in-a-single-column-to-multiple-columns-in-pandas
before:
{'simple25b': {'hands': {'0': {'currency': 'rm',
'handId': 'xyz',
'time': '2019-09-23 11:00:01'},
'1': {'currency': 'rm',
'handId': 'abc',
'time': '2019-09-23 11:01:18'}}},
'simple5af': {'hands': {'0': {'currency': 'rm',
'handId': 'akg',
'time': '2019-09-23 10:53:22'},
'1': {'currency': 'rm',
'handId': 'mzc',
'time': '2019-09-23 10:54:15'},
'2': {'currency': 'rm',
'handId': 'swk',
'time': '2019-09-23 10:56:03'},
'3': {'currency': 'rm',
'handId': 'pQc',
'time': '2019-09-23 10:57:15'},
'4': {'currency': 'rm',
'handId': 'ywh',
'time': '2019-09-23 10:58:53'}}}}
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: xyz keys: ('simple25b', 'hands', '0', 'handId')
value: 2019-09-23 11:00:01 keys: ('simple25b', 'hands', '0', 'time')
value: rm keys: ('simple25b', 'hands', '0', 'currency')
value: abc keys: ('simple25b', 'hands', '1', 'handId')
value: 2019-09-23 11:01:18 keys: ('simple25b', 'hands', '1', 'time')
value: rm keys: ('simple25b', 'hands', '1', 'currency')
value: akg keys: ('simple5af', 'hands', '0', 'handId')
value: 2019-09-23 10:53:22 keys: ('simple5af', 'hands', '0', 'time')
value: rm keys: ('simple5af', 'hands', '0', 'currency')
value: mzc keys: ('simple5af', 'hands', '1', 'handId')
value: 2019-09-23 10:54:15 keys: ('simple5af', 'hands', '1', 'time')
value: rm keys: ('simple5af', 'hands', '1', 'currency')
value: swk keys: ('simple5af', 'hands', '2', 'handId')
value: 2019-09-23 10:56:03 keys: ('simple5af', 'hands', '2', 'time')
value: rm keys: ('simple5af', 'hands', '2', 'currency')
value: pQc keys: ('simple5af', 'hands', '3', 'handId')
value: 2019-09-23 10:57:15 keys: ('simple5af', 'hands', '3', 'time')
value: rm keys: ('simple5af', 'hands', '3', 'currency')
value: ywh keys: ('simple5af', 'hands', '4', 'handId')
value: 2019-09-23 10:58:53 keys: ('simple5af', 'hands', '4', 'time')
value: rm keys: ('simple5af', 'hands', '4', 'currency')
https://stackoverflow.com/questions/62059970/how-can-i-convert-nested-dictionary-to-pd-dataframe-faster
before:
{'file': 'name',
'main': [{'answer': [{'comment': 'It is defined as',
'user': 'John',
'value': [{'my_value': 5, 'value_2': 10},
{'my_value': 24, 'value_2': 30}]},
{'comment': 'as John said above it simply means',
'user': 'Sam',
'value': [{'my_value': 9, 'value_2': 10},
{'my_value': 54, 'value_2': 19}]}],
'closed': 'no',
'question': 'what is ?',
'question_no': 'Q.1'}]}
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: name keys: ('file',)
value: Q.1 keys: ('main', 0, 'question_no')
value: what is ? keys: ('main', 0, 'question')
value: John keys: ('main', 0, 'answer', 0, 'user')
value: It is defined as keys: ('main', 0, 'answer', 0, 'comment')
value: 5 keys: ('main', 0, 'answer', 0, 'value', 0, 'my_value')
value: 10 keys: ('main', 0, 'answer', 0, 'value', 0, 'value_2')
value: 24 keys: ('main', 0, 'answer', 0, 'value', 1, 'my_value')
value: 30 keys: ('main', 0, 'answer', 0, 'value', 1, 'value_2')
value: Sam keys: ('main', 0, 'answer', 1, 'user')
value: as John said above it simply means keys: ('main', 0, 'answer', 1, 'comment')
value: 9 keys: ('main', 0, 'answer', 1, 'value', 0, 'my_value')
value: 10 keys: ('main', 0, 'answer', 1, 'value', 0, 'value_2')
value: 54 keys: ('main', 0, 'answer', 1, 'value', 1, 'my_value')
value: 19 keys: ('main', 0, 'answer', 1, 'value', 1, 'value_2')
value: no keys: ('main', 0, 'closed')
https://stackoverflow.com/questions/39634369/4-dimensional-nested-dictionary-to-pandas-data-frame
before:
{'orders': [{'created_at': '2016-09-20T22:04:49+02:00',
'email': 'test@aol.com',
'id': 4314127108,
'line_items': [{'destination_location': {'address1': 'Teststreet '
'12',
'address2': '',
'city': 'Berlin',
'country_code': 'DE',
'id': 2383331012,
'name': 'Test Test',
'zip': '10117'},
'gift_card': False,
'name': 'Blueberry Cup'},
{'destination_location': {'address1': 'Teststreet '
'12',
'address2': '',
'city': 'Berlin',
'country_code': 'DE',
'id': 2383331012,
'name': 'Test Test',
'zip': '10117'},
'gift_card': False,
'name': 'Strawberry Cup'}]}]}
Let's flatten it: flatten_nested_something_to_list_of_tuples(data)
value: 2016-09-20T22:04:49+02:00 keys: ('orders', 0, 'created_at')
value: test@aol.com keys: ('orders', 0, 'email')
value: 4314127108 keys: ('orders', 0, 'id')
value: Teststreet 12 keys: ('orders', 0, 'line_items', 0, 'destination_location', 'address1')
value: keys: ('orders', 0, 'line_items', 0, 'destination_location', 'address2')
value: Berlin keys: ('orders', 0, 'line_items', 0, 'destination_location', 'city')
value: DE keys: ('orders', 0, 'line_items', 0, 'destination_location', 'country_code')
value: 2383331012 keys: ('orders', 0, 'line_items', 0, 'destination_location', 'id')
value: Test Test keys: ('orders', 0, 'line_items', 0, 'destination_location', 'name')
value: 10117 keys: ('orders', 0, 'line_items', 0, 'destination_location', 'zip')
value: False keys: ('orders', 0, 'line_items', 0, 'gift_card')
value: Blueberry Cup keys: ('orders', 0, 'line_items', 0, 'name')
value: Teststreet 12 keys: ('orders', 0, 'line_items', 1, 'destination_location', 'address1')
value: keys: ('orders', 0, 'line_items', 1, 'destination_location', 'address2')
value: Berlin keys: ('orders', 0, 'line_items', 1, 'destination_location', 'city')
value: DE keys: ('orders', 0, 'line_items', 1, 'destination_location', 'country_code')
value: 2383331012 keys: ('orders', 0, 'line_items', 1, 'destination_location', 'id')
value: Test Test keys: ('orders', 0, 'line_items', 1, 'destination_location', 'name')
value: 10117 keys: ('orders', 0, 'line_items', 1, 'destination_location', 'zip')
value: False keys: ('orders', 0, 'line_items', 1, 'gift_card')
value: Strawberry Cup keys: ('orders', 0, 'line_items', 1, 'name')
#The code that I used
from pprint import pprint
def print__(data_, stacklink,original_):
print(stacklink)
print(f'before:')
pprint(original_)
print('\nLet\'s flatten it: flatten_nested_something_to_list_of_tuples(data)\n')
for value, keys in data_:
print(f'value: {str(value).ljust(40)} keys: {keys}')
print('\n\n\n')
Metadata
Release files for flatten-any-dict-iterable-or-whatsoever 0.33
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| flatten_any_dict_iterable_or_whatsoever-0.33.tar.gz | 36.8 kB | Without provenance | Details for flatten_any_dict_iterable_or_whatsoever-0.33.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| flatten_any_dict_iterable_or_whatsoever-0.33-py3-none-any.whl | Python 3 | none | any | Details for flatten_any_dict_iterable_or_whatsoever-0.33-py3-none-any.whl |
Total release size: 60.5 kB
Release files / flatten_any_dict_iterable_or_whatsoever-0.33.tar.gz
| Download URL | flatten_any_dict_iterable_or_whatsoever-0.33.tar.gz |
|---|---|
| Size | 36.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f15696b3fca1004321edb86cca66d0c1d9b4da9985220b66756bd2d90b5c90a1
|
|
BLAKE2b-256 checksum How to use checksums |
1422886e6664c204669c39fca99efc93e6c208f4ed4f897f9fa0c0494f8fc248
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|
Release files / flatten_any_dict_iterable_or_whatsoever-0.33-py3-none-any.whl
| Download URL | flatten_any_dict_iterable_or_whatsoever-0.33-py3-none-any.whl |
|---|---|
| Size | 23.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4347316b8d79c449ca75c9a3989f88b81476600187d24688bd6cb7ffe6b18c8a
|
|
BLAKE2b-256 checksum How to use checksums |
bde1fd763b386f598ac3e90b6c6fe294461a946ec3a9c3b12685ea4e22bbdeff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|
Security for flatten-any-dict-iterable-or-whatsoever 0.33
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.