Python 在Django中准备用于反序列化的xml数据

Python 在Django中准备用于反序列化的xml数据,python,django,deserialization,Python,Django,Deserialization,我的模型有几个字段,如下所示: class XMLData(models.Model): name = models.CharField() description = models.CharField() price = models.CharField() <Root> <Header> <information>info</information> </Header> <Ma

我的模型有几个字段,如下所示:

class XMLData(models.Model):
   name = models.CharField()
   description = models.CharField()
   price = models.CharField()
<Root>
   <Header>
      <information>info</information>
   </Header>
   <Main>
      <Product>
         <Name>name1</Name>
         <Description>description1</Description>
         <Price>1</Price>
      </Product>
      <Product>
         <Name>name2</Name>
         <Description>description2</Description>
         <Price>2</Price>
      </Product>
   </Main>
</Root>
和包装在字符串中的xml数据,xml数据如下所示:

class XMLData(models.Model):
   name = models.CharField()
   description = models.CharField()
   price = models.CharField()
<Root>
   <Header>
      <information>info</information>
   </Header>
   <Main>
      <Product>
         <Name>name1</Name>
         <Description>description1</Description>
         <Price>1</Price>
      </Product>
      <Product>
         <Name>name2</Name>
         <Description>description2</Description>
         <Price>2</Price>
      </Product>
   </Main>
</Root>
所以我希望这会引起一些错误,我会明白接下来该怎么做,但并没有错误,xml数据并没有保存到数据库中


希望您理解我的问题,并感谢您的回答。

您似乎只对存储产品信息感兴趣。在这种情况下,
Product
将是比
XMLData
更好的型号名称

Django序列化程序没有帮助,因为您的数据格式不正确。但是,您可以使用lxml反序列化。代码取自:


应该将产品存储到数据库中

您似乎只对存储产品信息感兴趣。在这种情况下,
Product
将是比
XMLData
更好的型号名称

Django序列化程序没有帮助,因为您的数据格式不正确。但是,您可以使用lxml反序列化。代码取自:


应该将产品存储到数据库中

这里没有魔法。Django无法反序列化所需的任何XML。它只能反序列化中描述的格式。而且您的XML不符合预期的格式。您必须研究通用XML解析工具(如),并从解析的数据手动创建模型。感谢您的回答,请将您的注释设置为“答案”。为了结束这个问题,@abu ashraf masnun给出了一个更好的答案。你可以接受它,这里没有魔法。Django无法反序列化所需的任何XML。它只能反序列化中描述的格式。而且您的XML不符合预期的格式。您必须研究通用XML解析工具(如),并从解析的数据手动创建模型。感谢您的回答,请将您的注释设置为“答案”。为了结束这个问题,@abu ashraf masnun给出了一个更好的答案。请随意接受它。
d = etree_to_dict(e)

products = d['Root']['Main']['Product']

for p in products:
    product = Product()
    p.name = p['Name']
    p.description = p['Description']
    p.price = p['Price']

    p.save()