Python - разбор переменной для нужных данных - PullRequest
0 голосов
/ 14 января 2020

это должно быть довольно просто. Я пишу программу для извлечения данных из базы данных для хранения в переменной и передачи в другую программу. У меня это работает, чтобы подключиться к БД и запустить запрос, чтобы получить данные, которые возвращаются в новой строке для каждого столбца. Я хотел бы проанализировать этот вывод, чтобы сохранить только нужные мне столбцы в отдельные переменные, которые будут импортированы другой python программой. Обратите внимание, что печатная (исходящая) часть предназначена только для тестирования.

Вот функция:

def pullData():
    cnxn = pyodbc.connect('UID='+dbUser+';PWD='+dbPassword+';DSN='+dbHost)
    cursor = cnxn.cursor()

    #run query to pull the newest sms message
    outbound = cursor.execute("SELECT * FROM WKM_SMS_outbound ORDER BY id DESC")
    table = cursor.fetchone()
    for outbound in table:
        print(outbound)

    #close connection
    cnxn.close()

и вот пример выходных данных запроса, который я хотел бы проанализировать, так как он в данный момент хранится в переменной outbound. (ПРИМЕЧАНИЕ) Это не 1 столбец. Это один ряд. Каждая новая строка - это новый столбец в БД ... именно так он возвращается и форматируется, когда я запускаю программу.

enter image description here

1 Ответ

0 голосов
/ 14 января 2020

Я думаю, что это лучший способ добиться этого: (Учитывая, что ваша таблица переменная возвращается в виде списка)

# Lets say until here you've done your queries
collection = {}
for index,outbound in enumerate(table):
   key_name = "key{0}".format(index)
   collection[key_name] = outbound

print(collection)

ВЫХОД Ожидается:

{
    "key1" : 6932921,
    "key2" : 303794,
    ...
    ...
    ...

}

И затем, что вы можете сделать, чтобы получить к нему доступ из другого файла python, импортировав переменную collection , добавив return collection в pulldata function

В другом файле python будет просто:

from your_file_name import collection # considering they are on the same directory
...