猿问

有没有一种方法可以根据xml信息编写代码?(Python)

我正在尝试基于 xml 文件自动生成 python 脚本。作为一个简化的示例,我想将以下 xml(#1) 转换为下面的 Python 脚本(#2)。

#1 Xml 文件(待翻译)
1.xlsx

<Code CodeID="1">

  <Settings Setting='OpenFile'>

  </Settings>

  <Properties>

    <Configuration>

      <FieldInfo>

        <Field name="Account" size="255" source="File: 1.xlsx|`Sheet1`" type="V_String" />

        <Field name="PY" source="File: 1.xlsx|`Sheet1`" type="Double" />

        <Field name="CY" source="File: 1.xlsx|`Sheet1`" type="Double" />

      </FieldInfo>

    </Configuration>

  </Properties>

</Code>

#2 Python 脚本(已翻译)


Import pandas as pd

with pd.ExcelFile('1.xlsx') as xlsx:

  df = pd.read_excel(xlsx, 'Sheet1')

  df.astype({'Account': 'object', 'PY': 'float64', 'CY': 'float64'}).dtypes

我对 Python 和编程还很陌生,我想知道应该从哪里开始。

我想我可以搜索和研究有关如何解析 xml 文件等的详细信息,

但我不知道如何自动执行翻译过程。


幕布斯6054654
浏览 112回答 2
2回答

温温酱

您可以使用 XSL 将 XML 转换为文本(例如 python 脚本)。XSL 功能强大但对初学者来说很复杂。这个简单的 XSL 示例生成的文本与您作为输出输入的内容接近<xsl:stylesheet version="1.0">&nbsp; &nbsp; <xsl:output method="text" indent="yes"/>&nbsp; &nbsp;&nbsp;<xsl:template match="/">Import pandas as pdwith pd.ExcelFile('1.xlsx') as xlsx:&nbsp; df = pd.read_excel(xlsx, 'Sheet1')&nbsp; <xsl:for-each select="//Field">&nbsp; df.astype({'<xsl:value-of select="@name"/>': 'object',&nbsp; </xsl:for-each>&nbsp; &nbsp;}).dtypes</xsl:template></xsl:stylesheet>您需要扩展它以处理所有数据类型和任何其他对象属性。(例如,将“float64”翻译为“double”),作为 XSL 解决方案的一部分。但是@AKX 是正确的,您最好使用 XML 来提供随后在脚本中处理的参数。

慕神8447489

你绝对可以通过解析 XML 创建你自己的生成器,并在你的主脚本中使用 subprocess 模块运行它。如果您希望制作允许用户创建自己的宏的用户界面,您也可以使用块代码生成器来完成此类工作。
随时随地看视频慕课网APP

相关分类

Python
我要回答