为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

幕布斯6054654 2023-04-25 15:43:53
我正在尝试基于 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 pdwith pd.ExcelFile('1.xlsx') as xlsx:  df = pd.read_excel(xlsx, 'Sheet1')  df.astype({'Account': 'object', 'PY': 'float64', 'CY': 'float64'}).dtypes我对 Python 和编程还很陌生,我想知道应该从哪里开始。我想我可以搜索和研究有关如何解析 xml 文件等的详细信息,但我不知道如何自动执行翻译过程。
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

您可以使用 XSL 将 XML 转换为文本(例如 python 脚本)。XSL 功能强大但对初学者来说很复杂。


这个简单的 XSL 示例生成的文本与您作为输出输入的内容接近


<xsl:stylesheet version="1.0">

    <xsl:output method="text" indent="yes"/>

    

<xsl:template match="/">

Import pandas as pd

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

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

  <xsl:for-each select="//Field">

  df.astype({'<xsl:value-of select="@name"/>': 'object',

  </xsl:for-each>

   }).dtypes

</xsl:template>


</xsl:stylesheet>

您需要扩展它以处理所有数据类型和任何其他对象属性。(例如,将“float64”翻译为“double”),作为 XSL 解决方案的一部分。但是@AKX 是正确的,您最好使用 XML 来提供随后在脚本中处理的参数。


查看完整回答
反对 回复 2023-04-25
?
慕神8447489

TA贡献1780条经验 获得超1个赞

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



查看完整回答
反对 回复 2023-04-25
  • 2 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信