如何解决使用编码到python解析XML
我对python的了解不是很多。我没有使用python处理XML,但现在必须这样做。我要在Python中解析的字符串中包含XML。我想将此XML存储在数据框中,但无法将其解析为python。
OSError: Error reading file '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
带有选项1的错误消息:ValueError: Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.
带有选项2的错误消息:'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<positionEventMessage xmlns="urn:XXXX:uc" xmlns:td="urn:XXXX:uc:trade-id" xmlns:dt="http://www.dtcc.com/ext" xmlns:ip="urn:XXXX:ipt" xmlns:fpml="http://www.fpml.org/FpML-5/recordkeeping" xmlns:dtx="urn:XXXX:dtcc-5-ext" xmlns:w3="http://www.w3.org/2000/09/xmldsig#" xmlns:XXXX="urn:XXXX:fpml-5-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<header>
<sourceSystem>RODS</sourceSystem>
<originatingSystem>MXG2000</originatingSystem>
<timestamp>2020-07-04T16:23:46Z</timestamp>
</header>
<positionEvent>
<eventType>Position:Update</eventType>
<businessDate>2020-07-04</businessDate>
<businessTime>16:23:46.046Z</businessTime>
<position>
<primaryAssetClass>Cash</primaryAssetClass>
<productType productTypeScheme="urn:XXXX:product-type:RODS">ACFACFACF</productType>
<productType productTypeScheme="urn:XXXX:product-type:RODS:qlDesc">ACF-FXD</productType>
<owner>
<partyReference href="Party1"/>
<accountReference href="Account1"/>
</owner>
<aggregationCategory aggregationCategoryScheme="urn:XXXX:aggregation-category:MUREX:instrument">ACF-FXD</aggregationCategory>
<currencyPair>
<fpml:currency1>USD</fpml:currency1>
<fpml:currency2>SAR</fpml:currency2>
</currencyPair>
<positionId positionIdScheme="urn:XXXX:position-id:HTI">0000002442892000207911</positionId>
<positionId positionIdScheme="urn:XXXX:position-id:RODS:regulatory-key">999999999894891</positionId>
<positionId positionIdScheme="urn:XXXX:position-id:RODS:valuation-id">USDSAR209</positionId>
<positionId positionIdScheme="urn:XXXX:position-id:RODS:GlobalId">2000207911</positionId>
<version>20151207000000000</version>
<fpml:cash>
<fpml:currency>SAR</fpml:currency>
</fpml:cash>
<positionType>Long</positionType>
<quantity>7426113.8099999996</quantity>
<internalProductType>
<ip:productType productName="FX - SIMPLE CASH FLOW"/>
</internalProductType>
</position>
</positionEvent>
<party id="Party1">
<fpml:partyId partyIdScheme="urn:XXXX:party-id:PO_ID">PO7</fpml:partyId>
<fpml:partyId partyIdScheme="urn:XXXX:party-id:PO_GROUP">LOH</fpml:partyId>
<fpml:partyId partyIdScheme="urn:XXXX:party-id:GROUP_ID">MDBK</fpml:partyId>
<fpml:partyId partyIdScheme="urn:XXXX:party-id:BRANCH_ID">610</fpml:partyId>
<fpml:partyId partyIdScheme="urn:XXXX:party-id:GRID_ID">43146</fpml:partyId>
</party>
<account id="Account1">
<fpml:accountId accountIdScheme="urn:XXXX:book-id:RODS">209</fpml:accountId>
<fpml:accountId accountIdScheme="urn:XXXX:book-id:HMS">FO0025489</fpml:accountId>
<fpml:accountBeneficiary href="Party1"/>
</account>
</positionEventMessage>'
UC看起来像:
{{1}}
解决方法
尝试一下:
uc = """[your xml above"""]
tree = ET.XML(uc.encode())
看看是否可行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。