-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathScript1.py
78 lines (63 loc) · 3.81 KB
/
Script1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import glom
import datetime
from pandas import Timestamp
from pprint import pprint
from glom import T, A, S, Merge, Iter, Coalesce, Val
target = {
"pluto": {"moons": 6, "population": None},
"venus": {"population": {"aliens": 5}},
"earth": {"moons": 1, "population": {"humans": 7700000000, "aliens": 1}},
}
spec = {
"moons": (
T.items(),
Iter({T[0]: (T[1], Coalesce("moons", default=0))}),
Merge(),
)
}
pprint(glom.glom(target, spec))
target2 = {'mgf': {'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'Kopfsalat mit Herz', 'Menge': 1.0, 'Aktion': 0.0, 'Umsatz': 2.6},
'lise': {'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'Laugentessinerbrot', 'Menge': 1.0, 'Aktion': 0.0, 'Umsatz': 2.65},
}
spec2 = {
"items": (
T.items(),
Iter({T[0]: (T[1], {'article':'Artikel','quantity':'Menge'})}),
list,
)
}
pprint(glom.glom(target2, spec2))
spec2 = {
"items": (
T.values(),
Iter((T, {'article':'Artikel','quantity':'Menge'})),
list,
)
}
pprint(glom.glom(target2, spec2))
data = {'mgf':
[
{'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'Kopfsalat mit Herz', 'Menge': 1.0, 'Aktion': 0.0, 'Umsatz': 2.6},
{'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'Bio Patatli', 'Menge': 1.0, 'Aktion': 0.0, 'Umsatz': 3.5},
{'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'Zwiebeln', 'Menge': 0.452, 'Aktion': 0.0, 'Umsatz': 0.95},
{'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'Nidelchuechli', 'Menge': 1.0, 'Aktion': 0.0, 'Umsatz': 1.8},
],
'lise':
[
{'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'Laugentessinerbrot', 'Menge': 1.0, 'Aktion': 0.0, 'Umsatz': 2.65},
{'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'M-Drink Hoch Past', 'Menge': 1.0, 'Aktion': 0.0, 'Umsatz': 1.8},
{'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'Gesalzene Butter', 'Menge': 1.0, 'Aktion': 0.0, 'Umsatz': 2.25},
{'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'Bio Traubens. rot 1l', 'Menge': 1.0, 'Aktion': 0.0, 'Umsatz': 3.05},
{'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'Candida Mundwasser', 'Menge': 1.0, 'Aktion': 0.0, 'Umsatz': 3.9},
{'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'Candida Multicare 75ml', 'Menge': 1.0, 'Aktion': 0.0, 'Umsatz': 3.3},
{'Datum_Zeit': Timestamp('2020-01-04 18:32:45'), 'Filiale': 'MM Altstetten', 'Kassennummer': 437, 'Transaktionsnummer': 6395, 'Artikel': 'Candida Anti Zahnstein', 'Menge': 1.0, 'Aktion': 0.0, 'Umsatz': 3.3},
]
}
spec3 = {
"items": (
T.items(),
Iter((S(value=T[0]),T[1],[{'buyer':S.value,'article':'Artikel','quantity':'Menge'}])).flatten(),
list,
)
}
pprint(glom.glom(data,spec3))