Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 12, 2017 21:08:30

Andru111
Зарегистрирован: 2017-02-12
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как изменить последовательность записи из csv в sqlite?

Доброго времени суток. Появилась такая задача, необходимо перевести файл из csv в sqlite, вроде задача не сложная, но нужно изменить последовательность записи, то есть чтобы записывало, например, данные из 2 столбца в 4 и т.п.
Сейчас есть такой код, но это просто запись один к одному:

 import sqlite3
   import csv
   con = sqlite3.connect('out_data')
   con.text_factory = str
   cur = con.cursor()
   cur.execute("CREATE TABLE IF NOT EXISTS out_data (chair, day, name, class_index, shift_index, camp)") 
   f = csv.reader(open('/home/andrei/IntelSS/data/csv/out.csv', 'rb'))
   for item in f:
       cur.execute("INSERT OR IGNORE INTO out_data VALUES (?, ?, ?, ?, ?, ?)", item)
   con.commit()
   con.close()
Может кто сталкивался с подобным или просто знает как можно решить?

Офлайн

#2 Фев. 13, 2017 00:56:55

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

Как изменить последовательность записи из csv в sqlite?

Andru111
чтобы записывало, например, данные из 2 столбца в 4
  
for item in f:
    newitem = item[:]
    newitem[3] = newitem[1]
    cur.execute("INSERT OR IGNORE INTO out_data VALUES (?, ?, ?, ?, ?, ?)", newitem)



Отредактировано py.user.next (Фев. 13, 2017 00:57:10)

Офлайн

#3 Фев. 13, 2017 21:48:54

Andru111
Зарегистрирован: 2017-02-12
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как изменить последовательность записи из csv в sqlite?

Спасибо огромное, все получилось!
И еще такой вопрос, как можно сохранить имя csv файла в переменную?

Офлайн

#4 Фев. 13, 2017 22:03:01

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2823
Репутация: +  185  -
Профиль   Отправить e-mail  

Как изменить последовательность записи из csv в sqlite?

> нужно изменить последовательность записи, то есть чтобы записывало, например, данные из 2 столбца в 4 и т.п.

А зачем? С точки зрения БД это вещь бессмысленная.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Фев. 13, 2017 22:17:42

Andru111
Зарегистрирован: 2017-02-12
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как изменить последовательность записи из csv в sqlite?

Rodegast
А зачем? С точки зрения БД это вещь бессмысленная.
Необходимо было отсортировать по другому, но с этим уже помогли, теперь есть другой вопрос:
Andru111
И еще такой вопрос, как можно сохранить имя csv файла в переменную?

Офлайн

#6 Фев. 13, 2017 22:34:36

Andru111
Зарегистрирован: 2017-02-12
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как изменить последовательность записи из csv в sqlite?

вроде разобрался, но мне кажется, что это костыль, так оно или нет?

 f = open('/home/andrei/IntSS/data/csv/out.csv', 'rb')
a = f.name.split('/')
name = a[len(a)-1]
r = csv.reader(f)

Офлайн

#7 Фев. 14, 2017 05:47:05

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9993
Репутация: +  857  -
Профиль   Отправить e-mail  

Как изменить последовательность записи из csv в sqlite?

Andru111
вроде разобрался, но мне кажется, что это костыль, так оно или нет?
  
import os
 
idir = '/home/andrei/IntSS/data/csv'
ifname = 'out.csv'
ipath = os.path.join(idir, ifname)
 
with open(ipath, 'rb') as fin:
    print(fin.readline())



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version