Вывод данных SQL в текстовый файл с Python - Как избавиться от None? - PullRequest
0 голосов
/ 11 июля 2019

Я извлекаю данные из таблицы SQL Server, используя python-код pyodbc.

В выходном файле я получаю такие записи:

1, 1, None, None,Нет, Нет, Нет, Нет

Значения None в таблице SQL имеют значение Null.

Я бы хотел видеть записи в текстовом файле в этом формате.Я не хочу видеть None.

1, 1,,,,,,

Любые идеи, как я могу это сделать?

Вот код, который я 'м с использованием:

    import pyodbc

    outputfile = 'MyOut.txt'

    output_data = open(outputfile, 'w+')

    conn=pyodbc.connect(
        r'Driver={SQL Server};'
        r'Server=MyServer;’
        r'Database=MyData;'
        r'Trusted_Connection=yes;')

    crsr = conn.cursor()

    crsr.execute('select * from MyTable’)

    for row in crsr:
    print(str(row))
        outrows = str(row).strip('(')
        outrows = outrows.strip(')')
        output_data.write(outrows + '\n')

    output_data.close()

1 Ответ

0 голосов
/ 12 июля 2019

Я понимаю, что outrows - это строка, но это, вероятно, будет проще сделать с помощью списка. Кроме того, вывод, вероятно, должен быть строкой, поскольку вы пишете в txt.
Вы можете изменить цикл for как таковой

for row in crsr:
    outrows = str(row).strip("(").strip(")")
    line = outrows.split(",")
    # creating the array, by splitting the string at each comma
    for component in line:
        if component == " None":
            # with " " as there is most likely a space after the "," in the file
            line[line.index(component)] = ""
    file.write(",".join(line)+"\n")

Боюсь, я не особо знаком с pyodbc, но надеюсь, что это помогло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...