2017-04-15 9 views
1

eBay APIとpython ebaysdkモジュールを使用しています。私のAddFixedPriceItemリクエストで新しい商品リストを投稿するために、私はProduct.ItemCompatibility(私のプロダクションキーを使ってeBayMotorsカテゴリー内で)を使用したいと思っています。eBay API ItemCompatibility XML入力

<ItemCompatibilityList> ItemCompatibilityListType 
    <Compatibility> ItemCompatibilityType 
    <CompatibilityNotes> string </CompatibilityNotes> 
    <NameValueList> NameValueListType 
     <Name> string </Name> 
     <Value> string </Value> 
     <!-- ... more Value values allowed here ... --> 
    </NameValueList> 
    <!-- ... more NameValueList nodes allowed here ... --> 
    </Compatibility> 
    <!-- ... more Compatibility nodes allowed here ... --> 
</ItemCompatibilityList> 

私はおそらく、彼らが何をしたいのeBayを与えるために私の入力を並べ替える私は考えることができ15のまたは20種類の方法がありますが、のどれも:

は、オンラインドキュメントによると、これは必要なXML入力です彼らはうまくいくように見えました。これは私がリクエストで使用されるコードの中で最も現在のビットです:

api_request = { 
     'Item': { 
      'Category': category, 
      'Title': title, 
      'ItemCompatibilityList': { 
       'Compatibility': { 
        {'CompatibilityNotes': 'Fits for all trims and engines.'}, 
        {'NameValueList': {'Name':'Year','Value':'2001'}}, 
        {'NameValueList': {'Name':'Make','Value':'Honda'}}, 
        {'NameValueList': {'Name':'Model','Value':'Accord'}}}}}} 

api = trading(domain=DomainUrl, appid=Id_App, devid=Id_Dev, certid=Id_Cert, config_file=None) 
api.execute('AddFixedPriceItem',api_request) 

リストが掲載さとアクティブになり、他のすべての情報が正しく掲載されますが、目の前には互換性がありませんます。それはまったく表示されません、そして、私は何が間違っていたかを教えてくれるどんなエラーも受けません。

[Honda, Accord, 2002] 

しかし、私が望むことは、いくつかの互換性の項目である:eBayMotorsため

1つの互換項目があるように

[Honda, Accord, 2002], [Honda, Accord, 2003], [Honda, Accord, 2004] 

と。 3〜4日前に、私は実際に一度に1つの互換性項目として機能するようにしました。しかし、私は複数の年を持つために自分のコードを変更し、ミックスのどこかで、うまく機能するコードを完全に失ってしまいました。私はそれを失って以来、私は無限に働いてきました。そして、私はそれを正しく行う方法をまだ理解できません。データ構造が間違って設定されているかどうかわかりません。どんな助けでも大歓迎です。

答えて

0

上記のコードでは、辞書キーは重複しているため、システムはxmlの値を上書きします。

辞書のリストを送信する必要があります。

api_request = { 
     'Item': { 
     'Category': category, 
     'Title': title, 
     'ItemCompatibilityList': { 
      'Compatibility': { 
       {'CompatibilityNotes': 'Fits for all trims and engines.'}, 
       {'NameValueList'[{'Name':'Year','Value':'2001'}, 
           {'Name':'Make','Value':'Honda'}, 
           {'Name':'Model','Value':'Accord'}] 
       },      
       } 
     }}} 

これは役立ちます。

+0

私はそれにちょうど今試してみました。私はそれを数回早く試してみたと思います。どんな理由であれ、それはまったく動かないようです。 – indianhearts

+0

dictから生成されたxml形式を書き込めますか? –