如何在没有预定义结构的情况下在 Python 中生成具有 "for" 构造的大型 XML 文件?

How to generate large XML file with "for" construction in Python without predefined structure?

我在 REDIS 中有 4000 多个键值记录。 我的 XML 文件到服务器应该是这样的:

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <string name="Address">Address</string>
     <string name="AppName">App</string>
</resources>

我需要生成 XML 文件,其中包含我可以从数据库中获得的所有值(数字可能不同)。 我之前看到的所有示例都是预定义的结构——总是事先知道会有多少行。但就我而言,它总是不同的数字。如何生成XML文件"with cycle"?

你可以使用 jinja2 :

 from jinja2 import Environment, PackageLoader, select_autoescape   
 import os

 def write_xml(list_data):
      env = Environment(
               loader = PackageLoader('path', 'to', 'template', 'directory'),
               autoescape = select_autoescape(['html', 'xml'])
               )
      template = env.get_template('template.xml')
      output_from_parsed_template = template.render(values=list_data)
      path = os.path.join("path", "to", "output")
      with open(str(path), "wb+") as fh:
            fh.write(output_from_parsed_template.encode('utf-8'))

您的 template.xml 文件:

 <?xml version="1.0" encoding="utf-8"?>
     <resources>
       {% for value in values %}
         <string name="Address">{{ value.Address }}</string>
         <string name="AppName">{{ value.App }}</string>
       {% endfor %}
     </resources>