Python Forum
pymysql: insert query throws error
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
pymysql: insert query throws error
#6
very helpful inputs...thanks for that.

i changed the script according to your suggestions...

#!/usr/bin/env python3


import sys
import os
import pprint
from collections import defaultdict
import pymysql
import pymysql.cursors
from SudoersLib import *

input_path="/admin/sudoers"
infiles= os.listdir(input_path)

connection = pymysql.connect(host='localhost',
                             user='sudodb',
                             password='sudodb',
                             database='sudoersdb',
                             cursorclass=pymysql.cursors.DictCursor)


for infile in infiles:
    infile=os.path.join(input_path, infile)
    sudo_obj = Sudoers(path=infile)
    file_name = os.path.basename(infile)
    sudohost = file_name.split('-')[1]
    results = defaultdict(list)
    sudo_host_list = []
    sudo_host_list.append(sudohost)
    results['sudohost'].append(sudo_host_list)

    for key in sudo_obj.host_aliases:
        host_alias_list = []
        host_alias_list.append((key, sudo_obj.host_aliases[key]))
        results['hostalias'].append(host_alias_list)
    for key in sudo_obj.cmnd_aliases:
        cmnd_alias_list = []
        cmnd_alias_list.append((key, sudo_obj.cmnd_aliases[key]))
        results['cmndalias'].append(cmnd_alias_list)
    for key in sudo_obj.runas_aliases:
        runas_alias_list = []
        runas_alias_list.append((key, sudo_obj.runas_aliases[key]))
        results['runasalias'].append(runas_alias_list)
    for key in sudo_obj.user_aliases:
        user_alias_list = []
        user_alias_list.append((key, sudo_obj.user_aliases[key]))
        results['useralias'].append(user_alias_list)
    for rule in sudo_obj.rules:
        users_list = []
        hosts_list = []
        rules_list = []
        users_list.append((rule["users"]))
        results['users'].append(users_list)
        hosts_list.append((rule["hosts"]))
        results['hosts'].append(hosts_list)
        rules_list.append((rule["users"], rule["hosts"], (rule["commands"])))
        results['commands'].append(rules_list)
        #print("%s|%s|%s|%s" % (sudohost, ",".join(rule["users"]), ",".join(rule["hosts"]), ",".join(map(str, rule["commands"]))))

        cursor = connection.cursor()
        qcolname = ",".join(map(str, results.keys()))
        qmarks = ",".join('?' * len(results))
        qry = "INSERT INTO rules (%s) VALUES (%s)" % (qcolname, qmarks)
        #qvals =  ",".join(map(str, results.values()))
        qvals = list(results.values())
        qvals_tupledx = tuple(qvals)
        #qvals_stringed = ','.join(map(str, qvals))
        #print(qvals_stringed)
        print(type(qvals_tupledx))
        print(qry, qvals_tupledx)
        #cursor.execute(qry, qvals_stringed)
        #connection.commit()
output is now a tuple and the sql string looks more or less ok..

<class 'tuple'>
INSERT INTO rules (sudohost,users,hosts,commands) VALUES (?,?,?,?) ([['aixacodbt']], [[['root']]], [[['ALL']]], [[(['root'], ['ALL'], [{'run_as': ['ALL'], 't
ags': None, 'command': 'ALL'}])]])
what puzzles me all time time with this kind of stuff...how to get rid of all those square brakets in the output as this
looks not right.

wbr

chris
Reply


Messages In This Thread
pymysql: insert query throws error - by wardancer84 - Jan-21-2022, 12:54 PM
RE: pymysql: insert query throws error - by wardancer84 - Jan-24-2022, 02:14 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  sqlite3 Conn Insert Value Error TylerDunbar 3 852 Sep-04-2023, 06:32 PM
Last Post: deanhystad
  pymysql; insert on duplicate key update fails wardancer84 4 2,190 Jun-28-2022, 08:14 PM
Last Post: Larz60+
  Mysql Syntax error in pymysql ilknurg 4 2,534 May-18-2022, 06:50 AM
Last Post: ibreeden
  Mysql error message: Lost connection to MySQL server during query tomtom 6 16,713 Feb-09-2022, 09:55 AM
Last Post: ibreeden
  Query Syntax Error hammer 2 1,713 Jan-03-2022, 02:30 PM
Last Post: hammer
  pymysql can't do SELECT * Pedroski55 3 3,085 Sep-11-2021, 10:18 PM
Last Post: Pedroski55
  TypeError: sequence item 0: expected str instance, float found Error Query eddywinch82 1 5,324 Sep-04-2021, 09:16 PM
Last Post: eddywinch82
  Error using mariadb select query with form in python? shams 2 2,115 Jul-29-2021, 12:30 PM
Last Post: shams
  pyarrow throws oserror winerror 193 1 is not a valid win32 application aupres 2 3,926 Oct-21-2020, 01:04 AM
Last Post: aupres
  Function throws error but then works? Milfredo 10 3,972 Sep-12-2020, 05:16 AM
Last Post: Milfredo

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020