Найти - Пользователи
Полная версия: Помогите пожалуйста с парсингом.
Начало » Python для новичков » Помогите пожалуйста с парсингом.
1
Novichok
Всем привет, появилась задача распарсить большое колл-во xml файлов и данные залить в БД.
Проблема в том, что питон ругается TypeError: cannot parse from ‘list’.
Помогите пожалуйста.
Код:
 import os 
from lxml import etree
path = 'C:/Users/xxx/Desktop/python/python-parsing/data'
filename = os.listdir(path)
tree = etree.parse(filename)
test = tree.xpath('///p[@name="bName"]')
print ("".join(test))
py.user.next
Неправильно получаешь путь к файлу. Сначала введи его напрямую, всё отладь на одном файле (сделай функцию обработки одного файла, которая принимает путь к файлу и возвращает результат его обработки), а потом уже делай получение файлов по очереди.
Rafik
Novichok
filename = os.listdir(path)
1. В filename получаешь список файлов без путей
2. etree.parse(filename) принимает имя файла, строку, а не список из строк. Из-за этого ругается TypeError: cannot parse from ‘list’.
3. etree.parse лучше всего скармливать полное имя файла, с путями, а не не просто имя. Для этого можно воспользоваться, например glob.glob()
 import glob
for filenm in glob.glob('C:/Users/xxx/Desktop/python/python-parsing/data/*.xml'):
    # glob.glob выдаст полные имена только *.xml из указанной папки.
    # Сюда вызов функции парсинга, получение от этой функции данных и запись в БД
В цикл надо будет положить вызов функции, которую нужно сделать как советует py.user.next
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB