Как перенести заголовки данных и столбцов из CSV в Sqlite3 - python 3.7 - windows 10 - PullRequest
0 голосов
/ 29 марта 2020

Что я пытаюсь сделать:

В основном мне нужно перенести все данные и заголовок столбца в csv (это список клиентов, которые будут периодически обновляться) в sqlite3

В чем моя проблема:

Я нашел в Интернете приведенный ниже скрипт, который позволяет мне передавать данные из CSV в sqlite3, но заголовки не "вставляются" как заголовки, но вставляются как обычные данные

(если вы напечатаете таблицу sqlite, вы увидите, что строка заголовков столбцов имеет идентификатор = 0, но идентификатор = 0 должен начинаться с первой записи клиента, которая является D099, RR Limited)

Можете ли вы мне помочь, пожалуйста?

#drop table used to be able to update sqlite
def drop_table():
    conn=sqlite3.connect("city_spec.db")
    cur=conn.cursor()
    cur.execute("DROP TABLE IF EXISTS MyTable")
    conn.commit()
    conn.close()


#transfer data from excel to sqlite3 -
def transfer():
    drop_table()
    df2 = pd.read_csv('iris_clients3.csv', names=['Client Code', 'Client Name', 'Contact name', 'YE'])

    # strip whitespace from headers
    df2.columns = df2.columns.str.strip()

    con = sqlite3.connect("city_spec.db")

    # drop data into database
    df2.to_sql("MyTable", con)

    con.close()

#this function will help to print the database

def write_to_csv2():
    transfer()
    conn=sqlite3.connect("city_spec.db")
    cur=conn.cursor()
    cur.execute("SELECT * FROM MyTable")
    for row in cur.fetchall(): #if want to print uncomment
        print(row)
    conn.close()

write_to_csv2()

enter image description here

enter image description here

Спасибо

1 Ответ

0 голосов
/ 31 марта 2020
  • df2 = pd.read_csv('iris_clients3.csv', names=['Client Code', 'Client Name', 'Contact name', 'YE'])

    говорит: " Это имена моих столбцов, загрузите все данные в виде строк "

  • df2 = pd.read_csv('iris_clients3.csv', header=0)

    говорит " Первая строка - это имена столбцов, не загружайте ее как данные "

  • df2 = pd.read_csv('iris_clients3.csv', names=['Client Code', 'Client Name', 'Contact name', 'YE'],header=0)

    говорит " Это имена столбцов, игнорируйте (не загружайте) строку 1 "

Если вы пытаетесь заменить имена в строке 1 на Имена столбцов, которые не содержат пробелов ( действительно хорошая идея!), используйте третий синтаксис и удалите пробелы из списка, ie ['ClientCode, 'ClientName'.....])

NB во время выполнения репро , он выдал следующее предупреждение из этой строки df2.columns = df2.columns.str.strip()

UserWarning: пробелы в именах этих столбцов не будут изменены. В pandas версиях <0,14 пробелы были преобразованы в подчеркивания. </p>

...