С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220

БД sqlite3

24.02.2019, 21:26. Показов 3371. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Можете пожалуйста описать ход действий для следующего задания:
имеется файл xml с набором записей, нужно создать реляционную базу данных, которая позволит сохранить эти записи, т.е. я так понял нужно после создания бд создать в ней таблицу и туда считать эти записи из файла xml? Просто одна запись содержит 30 полей, это значит что я создаю табличку с 30 -ью полями, указывая их тип? И после заношу эти данные уже в саму базу? Только как их туда занести? Буду рад если поможете мне в понимании задания, может быть пример подобный приведете, буду очень признателен!!! Может быть предложите решение получше
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.02.2019, 21:26
Ответы с готовыми решениями:

Работа с sqlite3
Вообщем,есть база данных 'users_base', также есть 2 переменных login, password,из нужно добавить в соответствующие колонки,но просто...

Редактировать данные в sqlite3
Добрый день помогите решить проблему редактирования данных в sqlite3. Опишу проблему: Вывожу данные из sql в приложение на python...

sqlite3 Python ошибка
Здравствуйте. Всех с наступившим Новым годом!!! Пытаюсь подключить sqlite3 к проекту. Но получаю ошибку. Не знаю как исправить. Прошу...

21
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
24.02.2019, 22:15
https://docs.python.org/3/libr... ttree.html
https://docs.python.org/3/library/sqlite3.html

Добавлено через 2 минуты
1) Создаешь базу;
2) Создаешь таблицу в ней;
3) Парсишь XML;
4) Вносишь в таблицу данные;
5) Profit!
2
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
24.02.2019, 23:31
DmitryV555, хмд будте добреньки, хотя бы в студию,а то телепатия уж прям должна быть высшего класса.
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
25.02.2019, 09:31
DmitryV555, xml и правда, парсить надо, база в 31 поле-явно перебоор.
0
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
25.02.2019, 14:05  [ТС]
Arsegg, а можете пояснить, как сделать парсер xml-файла? Ну то есть, я его считываю, там просто записи, которые содержат в себе числа (почти все int), после парсинга что я должен получить на выходе? представить их в каком-другом виде? Мне же их просто можно в таком же виде считать в бд сразу(без прасинга)??

Добавлено через 1 минуту
Dax, ааааааа, или надо как раз таки парсить для того чтобы уменьшить количество полей в записи??

Добавлено через 3 минуты
Dax, а как тогда это сделать?? 0_0
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
25.02.2019, 15:06
Для уменьшения кооичества пооей как раз и парсим.
0
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
25.02.2019, 15:19  [ТС]
Dax, да я это понял, спасибо, а можете подсказать как это сделать?

Добавлено через 4 минуты
нужно ли для парсинга применять регулярные выражения?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.02.2019, 16:34
Цитата Сообщение от DmitryV555 Посмотреть сообщение
нужно ли для парсинга применять регулярные выражения?
Нет, ни в коем случае. Ссылки на библиотеки для парсинга вам уже привели.
1
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
25.02.2019, 17:19
DmitryV555, https://stackoverflow.com/ques... ax-and-dom
1
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
25.02.2019, 21:21  [ТС]
Arsegg,
Python
1
2
3
import xml.etree.ElementTree as ET
tree = ET.parse('country_data.xml')
root = tree.getroot()
Я сделал парсер xml-файла вот таким образом по этому примеру, у меня просто открылись данные из этого файла в командной строке (если можно так сказать), как теперь уменьшить количество полей, как сказали выше, чтобы сделать для этого табличку в бд?
1
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
25.02.2019, 21:25
DmitryV555,

Не по теме:

вы бы привели пример вашего xml-файла, чтобы мы могли вам помочь...

0
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
27.02.2019, 21:54  [ТС]
Arsegg, извиняюсь за поздний ответ
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import sqlite3
conn = sqlite3.connect('team_email.sqlite')
c = conn.cursor()
 
c.execute("""
    CREATE TABLE email (
     id INTEGER PRIMARY KEY AUTOINCREMENT,
     cpid text,
     total_credit real,
     create_time int,
     name text,
     country text,
     expavg_credit real,
     expavg_time real,
     url text,
     has_profile int)
    """);
 
import xml.etree.ElementTree
root = xml.etree.ElementTree.parse('C:\Users\User\Desktop\team_email_list.xml').getroot()
for i in range(len(root[0].findall('user'))):
    row =[]
    for k in range(10):
        row.append(root[0][i][k].text)
    print(row)

Вот я создал базу данных, затем создал в ней табличку, далее делаю парсинг хмл - файла, теперь я хочу данные из файла
перенести в файл team_email.sqlite, только не знаю как это сделать, понимаю что надо каждую запись инсертить через цикл, но не могу допереть, подскажите как это сделать, пожалуйста (ссылка на файл хмл: https://boinc.bakerlab.org/ros... ey=Y&xml=1)

и прикладываю еще скрин, чтобы наглядно было видно какая структура и хмл файла
Миниатюры
БД sqlite3  
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
28.02.2019, 04:43
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
from pprint import pprint
import xml.etree.ElementTree as ET
 
root = ET.parse('team_email_list.xml').getroot()
assert root.tag == 'users'
result = []
for user in root.findall('user'):
    d = {}
    for i in user:
        d[i.tag] = i.text
    result.append(d)
 
pprint(result)
И потом генеришь SQL INSERT — и импорт сделан!
1
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
28.02.2019, 08:19  [ТС]
Помогите, пожалуйста, сделать вставку данных в таблицу, как для всех user сделать в цикле insert into?
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
28.02.2019, 09:13
Python
1
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
28.02.2019, 09:41
Там скорее так:
SQL
1
INSERT INTO TABLE (%s, %s, %s) VALUES (%s, %s, %s);
http://www.sqlitetutorial.net/sqlite-insert/
1
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
28.02.2019, 10:18  [ТС]
Рыжий Лис, вместо 3-х значений я подставляю 10? (сколько в табличке полей)
SQL
1
INSERT INTO TABLE (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s);
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
28.02.2019, 10:20
Угу. Первые десять — это имена полей, последние десять — значения.
0
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
28.02.2019, 10:29  [ТС]
Рыжий Лис, а как он поймет что значения нужно брать из файла? (простите если это тупой вопрос)
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
28.02.2019, 10:37
Цитата Сообщение от Arsegg Посмотреть сообщение
1) Создаешь базу;
2) Создаешь таблицу в ней;
3) Парсишь XML;
4) Вносишь в таблицу данные;
5) Profit!
У тебя сейчас сделаны первых три шага, спарсенные данные лежат в словаре (переменная result), осталось только в правильном порядке подставить значения в sql-запрос.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.02.2019, 10:37
Помогаю со студенческими работами здесь

Запись значений в SQLite3
Здравствуйте. При записи в базу данных SQLite3 возникает ошибка Код from bs4 import BeautifulSoup import csv import sqlite3 ...

Связка sqlite3+python+pyTelegramBotApi
Уважаемые знатоки, имеются следующие файлы: db.py: import sqlite3 import apsw class BotDB(): ...

Не обновляются данные в таблице SQLite3
def SetDialog(chat_id): c.execute('UPDATE managers SET status == ? WHERE id == ?', (1, chat_id,)) conn.commit() ...

Как исправить кодировку в sqlite3
Здравствуйте. Всех с наступившим Новым годом!!! Опять проблемы с кодировкой. Теперь в sqlite3. Прошу помощи. Вот код # -*- coding:...

Добавление списка в ближайшее sqlite3
Всем привет, подскажите как добавить список в базу данных, состоящего из одного столбца, пробую через executemany но ничего не выходит ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru