2012-09-24 155 views
1

我是新手程序員,試圖製作解析xml並將其內容粘貼到頻道上的irc bot。通常我會在google上找到我的答案,但這次我找不到我的答案。Python:TypeError:不能乘以類型'float'的非int的序列

q0tag = dom.getElementsByTagName('hit')[0].toxml() 
q0 = q0tag.replace('<hit>','').replace('</hit>','') 

q1 = (q0 * 1.2) 

當我試圖乘Q0它總是顯示

TypeError: can't multiply sequence by non-int of type 'float'. 

林試圖使Q0整數或浮點數,但它只是讓另一個錯誤

AttributeError: 'NoneType' object has no attribute 'replace' 

Q0值是沒有小數的整數。

回答

11

您的q0值仍然是一個字符串。這基本上是你在做什麼:

>>> q0 = '3' 
>>> q1 = (q0 * 1.2) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: can't multiply sequence by non-int of type 'float' 

爲了解決這個問題,將字符串轉換爲數字第一:

>>> q1 = (float(q0) * 1.2) 
>>> q1 
3.5999999999999996 

您可能還需要尋找到了lxmlBeautifulSoup模塊解析XML 。

+0

+1用於提及XML解析器。 [ElementTree](http://docs.python.org/library/xml.etree.elementtree.html)和[minidom](http://docs.python.org/library/xml.dom.minidom.html)分別是也相當不錯。 – vinnydiehl

+0

我一開始做了,但刪除了它。我意識到OP正在使用''xml.dom'',這可能是好的 – jterrace

+0

是的,我剛纔在評論後看到了這一點。無論如何,我會保持鏈接,因爲有人可能會發現它們有用。 – vinnydiehl

相關問題