从db解析pypyodbc数据

时间:2018-05-08 18:13:08

标签: python parsing pypyodbc

我正在使用pypyodbc连接器从像 here 这样的sql server数据库转储数据,但理想情况下我需要像这样解析数据:

{ 'foo': 'bar',
'foo2': 2,
'foo3': '2018/03/09 22:12:54'),
'foo4': '15',}

但我得到的结果是unicode和datetime:

我不知道该怎么做。我尝试循环查询并创建临时列表,但不成功。

def write_log(cursor, log_type):
if not os.path.exists('OfficeScan_logs'):
    os.makedirs('OfficeScan_logs')

while True:
    row = cursor.fetchone()
    if not row:
        print('[+] Done')
        break
    columns = [column[0] for column in cursor.description]
    pp = pprint.PrettyPrinter(indent=4)
    with open("OfficeScan_logs\\" + log_type + ".log", "r") as logs:
        for row in cursor.fetchall()
            tmp = []
            for f in row:
                if isinstance(f, unicode):
                    tmp.append(f.encode('utf-8'))
                elif id(f) and type(f) in (datetime, datetime.time):
                    tmp.append('{:%d/%m/%Y %H:%M:%S}'.format{f})
                else:
                    tmp.append(f)

            logs.write(pp.pformat(dict(zip(columns, tmp))) + '\n')

写入:

{   'app_name': 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
'credit': 1,
'gen_time': datetime.datetime(2018, 3, 9, 22, 12, 54),
'groupcode': '15',}

编辑:Unicode现在正在解码为utf-8,但日期仍以datetime.datetime()格式编写。

0 个答案:

没有答案