In [69]:
from dist_time import *
import itertools as it
import pandas as pd

R_DOCK_UNLOAD


In [140]:
def check_dic_value(data: dict=None):
    type_dic_value = set()
    if data is None:
        return
    else:
        for _,v in data.items():
            if isinstance(v, list):
                type_dic_value.add('L')
            elif isinstance(v, str):
                type_dic_value.add('S')
            else:
                raise ValueError('字典值类型不是字符或列表形式!')
            if len(type_dic_value) !=1:
                raise ValueError('字典值类型既有字符也有列表!')
        return {type_dic_value.pop(): data}

    
def dict_list_to_dataframe(pd: pd.DataFrame, data: dict=None):
    ckeck_data = check_dic_value(data)
    for k, _ in ckeck_data.items():
        print(k)
        if k == 'L':
            re_data = it.chain(
                *[i for  i in map(lambda x, y : [[x, v] for v in y if  isinstance(y, list)], ckeck_data[k].keys(), ckeck_data[k].values())]
            )
            return pd.DataFrame(list(re_data), columns=['equipment_port_last', 'equipment_port_next'])
        elif k == 'S':
            re_data = [[k, v] for k, v in ckeck_data[k].items()]
            return pd.DataFrame(list(re_data), columns=['equipment_port_last', 'equipment_port_next'])

df_d = dict_list_to_dataframe(pd, R_Dock_Unload)
df_d.


S
Out[140]:
equipment_port_last equipment_port_next
0 R_Dock1 R_Unload1
1 R_Dock2 R_Unload1
2 R_Dock3 R_Unload1
3 R_Dock4 R_Unload1
4 R_Dock5 R_Unload1
5 R_Dock6 R_Unload1
6 R_Dock7 R_Unload1
7 R_Dock8 R_Unload1
8 R_Dock9 R_Unload1
9 R_Dock10 R_Unload1
10 R_Dock11 R_Unload1
11 R_Dock12 R_Unload1
12 R_Dock13 R_Unload1
13 R_Dock14 R_Unload1
14 R_Dock15 R_Unload1
15 R_Dock16 R_Unload1
16 R_Dock17 R_Unload1
17 R_Dock18 R_Unload1
18 R_Dock19 R_Unload1
19 R_Dock20 R_Unload1
20 R_Dock21 R_Unload1
21 R_Dock22 R_Unload1
22 R_Dock23 R_Unload1
23 R_Dock24 R_Unload1
24 R_Dock25 R_Unload1
25 R_Dock26 R_Unload1
26 R_Dock27 R_Unload1
27 R_Dock28 R_Unload1
28 R_Dock29 R_Unload2
29 R_Dock30 R_Unload2
... ... ...
54 R_Dock55 R_Unload2
55 R_Dock56 R_Unload2
56 R_Dock57 R_Unload3
57 R_Dock58 R_Unload3
58 R_Dock59 R_Unload3
59 R_Dock60 R_Unload3
60 R_Dock61 R_Unload3
61 R_Dock62 R_Unload3
62 R_Dock63 R_Unload3
63 R_Dock64 R_Unload3
64 R_Dock65 R_Unload3
65 R_Dock66 R_Unload3
66 R_Dock67 R_Unload3
67 R_Dock68 R_Unload3
68 R_Dock69 R_Unload3
69 R_Dock70 R_Unload3
70 R_Dock71 R_Unload3
71 R_Dock72 R_Unload3
72 R_Dock73 R_Unload3
73 R_Dock74 R_Unload3
74 R_Dock75 R_Unload3
75 R_Dock76 R_Unload3
76 R_Dock77 R_Unload3
77 R_Dock78 R_Unload3
78 R_Dock79 R_Unload3
79 R_Dock80 R_Unload3
80 R_Dock81 R_Unload3
81 R_Dock82 R_Unload3
82 R_Dock83 R_Unload3
83 R_Dock84 R_Unload3

84 rows × 2 columns


In [59]:
data = {'A': 'a', 'b':[ 'b'], 'b': 'd'}

# prcess_data ={}
for k, v in data.items():
    print(k ,v)
#     if not isinstance(v, list):
#         prcess_data.update
# prcess_data = {k:v for k,v  in data.items() if isinstance(v, list) else list(v)}
# prcess_data


A a
b d

In [147]:
a = {'a': 'ABCD', 'b':'c'}
a = {'b': [1,2,3], 'c':[2,34,4]}

    
    
re_data = it.chain(
        *[i for  i in map(lambda x, y : [[x, v] for v in y], a.keys(), a.values())]
    )
check_dic_value(data=a)
lst=[[1,3]]
lst.extend([[3,4]])
lst


Out[147]:
[[1, 3], [3, 4]]