解析XML文件以获取所需数据并将其存储在Python中的mongodb数据库中

解析XML文件以获取所需数据并将其存储在Python中的mongodb数据库中,python,xml,mongodb,xml-parsing,pymongo,Python,Xml,Mongodb,Xml Parsing,Pymongo,我有一个XML文件,如下所示: 我想从此文件中获取所有事件的以下信息: 在活动类别下: 开始日期 结束日期 头衔 类别场地: 地址 地址2/ 城市 纬度 经度 名字 邮政编码 然后将此信息存储在mongodb数据库中。我在语法分析方面没有太多经验。有人能帮我吗!谢谢 下面的示例使用解析url中的xml,并使用以下命令将数据插入mongodb: 解析场地项目作为“家庭作业”留给您 请注意,还有其他xml解析器,如: 来自stdlib 希望有帮助 from pymongo impor

我有一个XML文件,如下所示:

我想从此文件中获取所有事件的以下信息:

在活动类别下:

  • 开始日期
  • 结束日期
  • 头衔
类别场地:

  • 地址
  • 地址2/
  • 城市
  • 纬度
  • 经度
  • 名字
  • 邮政编码

然后将此信息存储在mongodb数据库中。我在语法分析方面没有太多经验。有人能帮我吗!谢谢

下面的示例使用解析url中的xml,并使用以下命令将数据插入mongodb:

解析
场地
项目作为“家庭作业”留给您

请注意,还有其他xml解析器,如:

  • 来自stdlib
希望有帮助

from pymongo import MongoClient
import xml.etree.ElementTree as ET
from urllib2 import urlopen

cl = MongoClient()
coll = cl["dbname"]["collectionname"]

tree = ET.parse("https://www.eventbrite.com/xml/event_search?app_key=USO53E2ZHT6LM4D5RA&country=DE&max=100&date=Future&page=1")
root = tree.getroot()

for event in root.findall("./event"):
    doc = {}
    for c in event.getchildren():
        if c.tag in ("start_date", "end_date", "title"):
            doc[c.tag] = c.text
        elif c.tag == "venue":
            doc[c.tag] = {}
            for v in c.getchildren():
                if v.tag in ("address", "address_2", "city", "latitude", "longitude", "name", "postal_code"):
                    doc[c.tag][v.tag] = v.text

    coll.insert(doc)
from pymongo import MongoClient
import xml.etree.ElementTree as ET
from urllib2 import urlopen

cl = MongoClient()
coll = cl["dbname"]["collectionname"]

tree = ET.parse("https://www.eventbrite.com/xml/event_search?app_key=USO53E2ZHT6LM4D5RA&country=DE&max=100&date=Future&page=1")
root = tree.getroot()

for event in root.findall("./event"):
    doc = {}
    for c in event.getchildren():
        if c.tag in ("start_date", "end_date", "title"):
            doc[c.tag] = c.text
        elif c.tag == "venue":
            doc[c.tag] = {}
            for v in c.getchildren():
                if v.tag in ("address", "address_2", "city", "latitude", "longitude", "name", "postal_code"):
                    doc[c.tag][v.tag] = v.text

    coll.insert(doc)