在pythonxmlbuild中添加带连字符的XML根属性

2024-04-16 13:28:48 发布

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

我正在与googlecheckout api集成,它们的所有属性在属性值中都包含连字符。因此,要创建一个对订单收费的请求,我需要发送一个xml帖子,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<charge-and-ship-order xmlns="http://checkout.google.com/schema/2" google-order-number="6014423719">
    <amount currency="USD">335.55</amount>
</charge-and-ship-order>

我在构建带有属性“googleordernumber”的xml时遇到了困难。如果要创建空节点,以下代码可以工作:

^{pr2}$

但是,如果我尝试使用文档化的方式获取金额的子节点:

>>> xml=XMLBuilder()
>>> with xml('charge-and-ship-order', xmlns='xxx', google-order-number='3433'}):
>>>     with xml('amount', currency="USD"):
>>>         xml << '4.54'

我有个错误说:

SyntaxError: keyword can't be an expression

我也试过:

>>> xml=XMLBuilder()
>>> with xml('charge-and-ship-order', {'xmlns':'xxx', 'google-order-number':'3433'}):
>>>     with xml << 'test'

我在XMLBuilder库中找到了一个回溯

    File "/xmlbuilder/xmlbuilder/__init__.py", line 102, in __call__
    x(*dt,**mp)
    File "/xmlbuilder/xmlbuilder/__init__.py", line 36, in __call__
    text = "".join(dt)
    TypeError: sequence item 0: expected string, dict found

你知道如何使用这样的属性吗?我使用的XMLBuilder库位于 http://pypi.python.org/pypi/xmlbuilder


Tags: andhttpnumber属性withgoogleorderxml