Mijn vraag
Ik heb een tabel in een MySQL database met een aantal kolommen waar een INT waarde in staat. Om per lijn alleen de waarde > 0 naar boven te halen heb ik onderstaand python script geschreven:
met dit resultaat:
Kern van mijn probleem
Nu krijg ik dus alle results op 1 regel maar eigenlijk wil ik per row (packingplan_id) het resultaat op een nieuwe regel zien
Relevante software en hardware die ik gebruik
Python3
MySQL
pymsql
Wat ik al gevonden of geprobeerd heb
Ik vermoed dat het ergens in de for loop mis gaat, op de een of andere manier krijg ik het niet duidelijk dat Python na elke row een \n moet plaatsen
als ik dit op regel 16 weghaal krijg ik alle waardes op een nieuwe regel en dat wil dan ook weer niet.
In de testfase heb ik in de SQL query 'WHERE packingplan_id <5' gezet, in praktijk heeft de tabel 64000 rows.
Ik heb een tabel in een MySQL database met een aantal kolommen waar een INT waarde in staat. Om per lijn alleen de waarde > 0 naar boven te halen heb ik onderstaand python script geschreven:
Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| import pymysql connection = pymysql.connect(host='127.0.0.1', user='test', password='test', db='test', cursorclass=pymysql.cursors.DictCursor) while True: with connection.cursor() as cursor: sql = ("SELECT packingplan_id, BAG, BB1, BB2, BG, BOP, C08, C23, C24, CAF, CAR, CHA, DS2, E01, E02, KAR, LOT, P06, P12, PAC, PAQ, PK, S01, S02, S03, S04, S21, S93, SAC, SCH, ST FROM packingplan WHERE packingplan_id < 5") cursor.execute(sql) for row in cursor: for pack,qty in row.items(): if int(qty) > 0: print(qty, end = ", ") cmd = input('Press any key to continue. Enter \'q\' to quit!') if cmd == 'q': connection.close() break |
met dit resultaat:
(De dikgedrukte waardes zijn de packingplan_id) In dit voorbeeld heeft elke 'row' toevallig hetzelfde resultaat, in de praktijk kunnen de waardes en de aantallen results wisselen afhankelijk van de data per row.1, 10, 30, 1, 2, 10, 30, 1, 3, 10, 30, 1, 4, 10, 30, 1, Press any key to continue. Enter 'q' to quit!
Kern van mijn probleem
Nu krijg ik dus alle results op 1 regel maar eigenlijk wil ik per row (packingplan_id) het resultaat op een nieuwe regel zien
Relevante software en hardware die ik gebruik
Python3
MySQL
pymsql
Wat ik al gevonden of geprobeerd heb
Ik vermoed dat het ergens in de for loop mis gaat, op de een of andere manier krijg ik het niet duidelijk dat Python na elke row een \n moet plaatsen
als ik dit op regel 16 weghaal krijg ik alle waardes op een nieuwe regel en dat wil dan ook weer niet.
Python:
1
| , end = ", ") |
In de testfase heb ik in de SQL query 'WHERE packingplan_id <5' gezet, in praktijk heeft de tabel 64000 rows.
[ Voor 10% gewijzigd door Verwijderd op 14-02-2018 15:05 ]