Mijn vraag
Wij maken sinds kort gebruik van Picqer en daarmee willen wij onder andere alle relevante data kunnen downloaden om dit verder te processen.
Ik heb onderstaande JSON (maar een paar producten). Hiervan wil ik diverse data uit plukken omdat ik deze nodig heb.
De velden die ik wil hebben zijn als volgt:
idproduct, idvatgroup, idsupplier, productcode, name, price, stock per magazijn (alleen freestock)
Relevante software en hardware die ik gebruik
Omdat dit JSON is ben ik vooral aan het proberen met JQ. Nu heb ik onderstaande opdrachtregel die grotendeels werkt echter lukt het me niet om de (free)stock per magazijn achter elkaar te krijgen. Ik wil dit namelijk graag in een CSV hebben staan
Wat ik al gevonden of geprobeerd heb
Op https://jqplay.org kun je alles proberen wat het een stuk makkelijker maakt. Hiermee heb ik onderstaande opdrachtregel (linux debian) al mee gegenereerd echter dat laatste stukje van de stock kom ik niet mee weg.
Omgezet naar mijn bash script kom ik met het volgende (stock is weggelaten omdat die niet de juiste weergave heeft):
Output:
Wat ik dus nodig is dus bovenstaande met de toevoeging van het warehouseid en freestock.
Wij maken sinds kort gebruik van Picqer en daarmee willen wij onder andere alle relevante data kunnen downloaden om dit verder te processen.
Ik heb onderstaande JSON (maar een paar producten). Hiervan wil ik diverse data uit plukken omdat ik deze nodig heb.
JSON:
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
| { "success": true, "data": [ { "idproduct": 10305656, "idvatgroup": 9520, "idsupplier": 42582, "productcode": "00000020", "name": "Tefal YV9601 actifry heteluchtfriteuse", "price": 200.58, ... "stock": [ { "idwarehouse": 4862, ... "freestock": 0 }, { "idwarehouse": 4863, ... "freestock": 0 }, { "idwarehouse": 4861, ... "freestock": 0 }, { "idwarehouse": 4865, ... "freestock": 0 } ], ... }, { "idproduct": 10379509, "idvatgroup": 9520, "idsupplier": 42581, "productcode": "00000039", "name": "Sony MDR-XB50AP EXTRA BASS In-Ear Headphones Zwart", "price": 81.12, ... "stock": [], ... } ] } |
De velden die ik wil hebben zijn als volgt:
idproduct, idvatgroup, idsupplier, productcode, name, price, stock per magazijn (alleen freestock)
Relevante software en hardware die ik gebruik
Omdat dit JSON is ben ik vooral aan het proberen met JQ. Nu heb ik onderstaande opdrachtregel die grotendeels werkt echter lukt het me niet om de (free)stock per magazijn achter elkaar te krijgen. Ik wil dit namelijk graag in een CSV hebben staan
Wat ik al gevonden of geprobeerd heb
Op https://jqplay.org kun je alles proberen wat het een stuk makkelijker maakt. Hiermee heb ik onderstaande opdrachtregel (linux debian) al mee gegenereerd echter dat laatste stukje van de stock kom ik niet mee weg.
code:
1
| jq --compact-output '.data[] | { idproduct, idvatgroup, idsupplier, productcode, name, price, stock } | [.idproduct, .idvatgroup, .idsupplier, .productcode, .name, .price, .stock]' |
Omgezet naar mijn bash script kom ik met het volgende (stock is weggelaten omdat die niet de juiste weergave heeft):
code:
1
| cat json1.json | jq --compact-output '.data[] | { idproduct, idvatgroup, idsupplier, productcode, name, price } | [.idproduct, .idvatgroup, .idsupplier, .productcode, .name, .price]'| sed 's/"//g;s/,/;/g;s/\[//g;s/\]//g' |
Output:
code:
1
2
3
| 10305656;9520;42582;00000020;Tefal YV9601 actifry heteluchtfriteuse;200.58 10379509;9520;42581;00000039;Sony MDR-XB50AP EXTRA BASS In-Ear Headphones Zwart;81.12 10304234;9520;null;00000041;Philips AVENT DECT-babyfoon SCD580/00;0 |
Wat ik dus nodig is dus bovenstaande met de toevoeging van het warehouseid en freestock.
[ Voor 43% gewijzigd door RobIII op 28-08-2019 16:43 . Reden: JSON drastisch ingekort met enkel relevante json. ]
-Te huur