2017-08-25 33 views
0

は、私はPythonで初心者となってエラーET.find()は正確に2つの引数(3、与えられた)

ET.find(よ)かかり、正確に2つの引数(3、与えられた)

を取ります

import xml.etree.ElementTree as ET 

ns = {'conv_svc': 'http://schemas.com/serviceconvert'}    
jobTypesXml = self.__server_request(url, None)  
root = ET.fromstring(jobTypesXml)  
for job in root.find('conv_svc:GetJobTypesResult', ns): 

の実行中に私の最初の質問は次のとおりです。次の初期化に推測されるどのタイプ?

ns = {'conv_svc': 'http://schemas.com/serviceconvert'}    

これに答えると、自分でエラーを調べることができます。 ありがとうございます!

答えて

2

only takes a single argumentはそうあなたはそれはあなたが(少なくともfind()に)しようとしているであるものは何でもすることはできませんfind()方法。

質問に答えるには、{'conv_svc': 'http://schemas.com/serviceconvert'}は辞書であり、1つの引数として解釈されます。なぜあなたが3つの引数を渡しているとエラーが出ているのか疑問に思っているのであれば、それはselfもクラスメソッドの引数として数えられるからです。

class Testing(object): 

    def __init__(self): 
     self.a = 2 

    def do_something(self, b): 
     self.a += b 

obj = Testing() 
obj.do_something(2, 3) # Clearly passing only 2 arguments 

は与える:find()an optional extra argument in Python 3を取ることができることを指摘し@ShreyashSSarnayakへ

TypeError: do_something() takes exactly 2 arguments (3 given) 

EDIT

感謝を。このエラーメッセージは、Python 2を使用していることを確認していますが、おそらくPython 3に関連するドキュメントを読み込んでいる可能性があります。

+1

python3では[2つの引数](https://docs.python.org/3/library/xml.etree .elementtree.html#xml.etree.ElementTree.Element.find) –

+0

@ShreyashSSarnayak Aha。そのため、Python 2のドキュメントを使用していて、Python 3のドキュメントを使用しているというエラーが表示されます(質問に投稿されたエラーは、オプションの引数)。私は編集します、ありがとう。 – roganjosh

関連する問題