#python #python-3.x #database #list #sqlite
Вопрос:
У меня есть xml-файл. Я хочу прочитать этот xml-файл и добавить его значения в базу данных с помощью python. Я уже проанализировал данные до сих пор.
import mysql.connector
import xml.etree.ElementTree as ET
dom = ET.parse('gg3.vmat')
tree = ET.parse('gg3.vmat')
root = tree.getroot()
parse_list = []
parse_list = root[0][0].text.split('n')
removing_blank = [x.strip(' ') for x in parse_list]
removing_space = [x for x in removing_blank if x.strip()]
for material in root.findall('Material'):
density = material.find('strings').text
name = material.get('name')
# print(name, density)
parse_list = density.split('n')
removing_blank = [x.strip(' ') for x in parse_list]
removing_space = [x for x in removing_blank if x.strip()]
number = removing_space[0].split('=')[1]
list = [c.split('=')[1] for c in removing_space[1:]]
print(number, list)
Все списки, возвращенные в результате синтаксического анализа, имеют разные размеры.
Примеры списков:
[' Hydrogen', ' "0.02162"', ' Zirconium', ' "0.97838"']
[' Chromium', ' "0.000997"', ' Iron', ' "0.001994"', ' Oxygen', ' "0.001196"', ' Tin', ' "0.013955"', ' Zirconium', ' "0.981858"']
Я хочу добавить значения из этого списка в базу данных следующим образом:
Я попытался что-то сделать со струной f, но не смог ее вытащить.
print([f'F#{list[i].strip()},{list[i]}' for i in range(len(list))])
Спасибо тем, кто уже потратил свое время.
Ответ №1:
Вам нужно перебрать список попарно. Поэтому используйте range(0, len(lst), 2)
итерацию на 2.
Используйте strip('" ')
для удаления пробелов и кавычек вокруг цифр.
lst = [' Hydrogen', ' "0.02162"', ' Zirconium', ' "0.97838"']
print('F#' ''.join(f'{lst[i].strip()},{lst[i 1].strip('" ')} for i in range(0, len(lst), 2))]