Как скопировать данные значений, найденных в коде Python, в столбец в базе данных MySQL - PullRequest
1 голос
/ 20 июня 2019

Я создаю программу, которая подсчитывает количество людей, найденных каждой из групп, найденных в другой таблице «пользователи» в моей базе данных mysql, которая собирает данные для: (id, ap, apgroup, mac, datetime, device) и использует apgroup. и количество строк (или людей), найденных для этой группы, и вернуть данные в мою новую таблицу "howmany", чтобы отобразить данные в моих 2 столбцах "apgroup" и "count" для здания и сколько людей было замечено в этом здании , Какие-либо предложения? Вот мой код:

#!/bin/python3
import socket
import os, os.path, grp
import pymysql as mdb
con = mdb.connect('localhost', 'wlessuser', 'tKCRhA7XLkVehew9', 
'wireless_state');
cur = con.cursor()

def monthnum(shortname):              #dictionary to convert month 
name to month number
    return {
             'Jan' : "01",
             'Feb' : "02",
             'Mar' : "03",
             'Apr' : "04",
             'May' : "05",
             'Jun' : "06",
             'Jul' : "07",
             'Aug' : "08",
             'Sep' : "09",
             'Oct' : "10",
             'Nov' : "11",
             'Dec' : "12"
           } [shortname]


mysock = "/home/log/auth-logs-socket"   #defines socket address as 
mysock
if os.path.exists(mysock):              #socket connection to Doug's 
socket
    os.remove(mysock)
sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
gid  = grp.getgrnam("network").gr_gid
sock.bind(mysock)
os.chown(mysock, os.getuid(), gid)

sql = """INSERT howmany (apgroup, count) VALUES(%s, %d) ON DUPLICATE 
KEY UPDATE
apgroup=%s, count=%d;"""         #inserts data into the database 
cur.execute("set autocommit = 1")

while True:                                                  
    l = sock.recv(4096).decode()
    dateparts = l.split(None, 4)                              
#splits the found  date/time
    prefix = dateparts[4].split('[', 1)                       
#splits the opening bracket off of found fsuid
    fsuid = prefix[1].split(']', 1)                           
#splits the second bracket off of found fsuid
    tokens = fsuid[1].split()
    datetime = dateparts[3] + '-' + monthnum(dateparts[0]) + '-' + 
dateparts[1].zfill(2) + ' ' + dateparts[2]        number_of_rows = 
"""SELECT * FROM users"""
    cur.execute(number_of_rows)
    print(cur.rowcount, "rows at", dateparts[2])
    values = (tokens[9], number_of_rows, tokens[9], number_of_rows)
    cur.execute(sql, values)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...