如何迭代地转换lxml.objectify.ObjectifiedElement从授权.net变成一个python di

2024-09-29 19:22:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试对来自的数据执行事务报告授权.net. 在

我已经确定返回的对象是lxml.objectify.ObjectifiedElement,按原样处理非常困难。在

我希望将这个对象转换成一个更可操作的dict对象,但这样做有困难。在

我已经确定授权.net事务如下所示:

<getTransactionDetailsRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
<messages>
    <resultCode>...</resultCode>
    <message>
        <code>...</code>
        <text>...</text>
    </message>
</messages>
<transaction>
    <transId>...</transId>
    <submitTimeUTC>...</submitTimeUTC>
    <submitTimeLocal>...</submitTimeLocal>
    <transactionType>...</transactionType>
    <transactionStatus>...</transactionStatus>
    <responseCode>...</responseCode>
    <responseReasonCode>...</responseReasonCode>
    <responseReasonDescription>...</responseReasonDescription>
    <AVSResponse>...</AVSResponse>
    <cardCodeResponse>...</cardCodeResponse>
    <batch>
        <batchId>...</batchId>
        <settlementTimeUTC>...</settlementTimeUTC>
        <settlementTimeLocal>...</settlementTimeLocal>
        <settlementState>...</settlementState>
    </batch>
    <order>
        <description>...</description>
    </order>
    <authAmount>...</authAmount>
    <settleAmount>...</settleAmount>
    <lineItems>
        <lineItem>
            <itemId>...</itemId>
            <name>...</name>
            <description>...</description>
            <quantity>...</quantity>
            <unitPrice>...</unitPrice>
            <taxable>...</taxable>
        </lineItem>
    </lineItems>
    <taxExempt>...</taxExempt>
    <payment>
        <creditCard>
            <cardNumber>...</cardNumber>
            <expirationDate>...</expirationDate>
            <cardType>...</cardType>
        </creditCard>
    </payment>
    <customer>
        <email>...</email>
    </customer>
    <billTo>
        <firstName>...</firstName>
        <lastName>...</lastName>
        <phoneNumber>...</phoneNumber>
    </billTo>
    <recurringBilling>...</recurringBilling>
    <product>...</product>
    <marketType>...</marketType>
</transaction>

我找到了this documentation和{a2}作为lxml对象的帮助。在

我想生成一个

^{pr2}$

Tags: 对象textmessagenetcodedescription事务lxml
1条回答
网友
1楼 · 发布于 2024-09-29 19:22:49

我想出了一个办法:

import re 
def to_dict(element):
    ret = {}
    if element.getchildren() == []:
        return element.text
    else:
        for elem in element.getchildren():
            subdict = to_dict(elem)
            ret[re.sub('{.*}', '', elem.tag)] = subdict
    return ret

这将返回预期的字典。在

希望这能在将来帮助其他人。在

相关问题 更多 >

    热门问题