Python 如何使用ebay API将图像添加到现有项目

Python 如何使用ebay API将图像添加到现有项目,python,image,upload,ebay-api,Python,Image,Upload,Ebay Api,我正在使用ebay sdk for python。我使用以下代码成功地将一些图像上载到易趣图片服务(EPS): from ebaysdk.trading import Connection as Trading api = Trading(config_file='ebay.yaml', siteid=71) def upload_images(image_url): response = api.execute('UploadSiteHostedPictures', {"Exte

我正在使用ebay sdk for python。我使用以下代码成功地将一些图像上载到易趣图片服务(EPS):

from ebaysdk.trading import Connection as Trading

api = Trading(config_file='ebay.yaml', siteid=71)


def upload_images(image_url):
    response = api.execute('UploadSiteHostedPictures', {"ExternalPictureURL": image_url,
                                                             "PictureSet": "Supersize"})
    return response.content

upload_images(MY_IMG_URL)
易趣返回上传图像的URL

但我如何才能将这些图片添加到现有的易趣优惠中?我必须使用ReviseItem吗

举一个使用ebay sdk for python的例子就好了

编辑:

我按照建议做了更改,但仍然只更改了主图像。我的IMG3成为主要图像。我的IMG1和IMG2没有附加到列表中。

这很有效

def verifyAddItem(args):
        #"""http://www.utilities-online.info/xmltojson/#.UXli2it4avc   """
    try:
        api = Trading(debug=args.debug, siteid=site_id, appid=app_id, token=token_id, config_file=None, certid=cert_id, devid=dev_id)

        myitem = {
            "Item": {
                "Country": "GB",
                "Description": description,
                "ItemID": item_to_revise,
                "PictureDetails": {
                    "PictureURL": "http://www.itcircleconsult.com/eb2017/4a.png"
                    },
                }
            }

        api.execute('ReviseFixedPriceItem', myitem)
        dump(api)
我一直在eBay和Python上工作

在这里查看一些工作示例。。我经常把它们拆开,然后在飞行中重新组装起来,但你可能会发现一些用处

还有一个I-ways检查器和一些BS4翻录来修改项目

另一个有用的功能是在此处查看易趣API调用索引:

然后使用XML-to-JSON转换器将需要的调用更改为pythong中更可读的格式

在这里:

有关添加图像和托管的说明:

注意:从版本889开始,在创建列表之前,您不需要使用此调用上载自托管图像。现在,您可以使用AddItem或AddFixedPriceItem调用在Item.PicturedDetails.PictureURL中一次指定多达12个自托管或EPS托管URL。但是,必须使用UploadSiteHostedPictures调用上载二进制附件

假设的JSON需要它。。除非将图片填充到项目中需要时间

我们俩都失踪了[]-学生犯了错误

{
"Item": {
    "PictureDetails": [
    { "PictureURL": "http://pics.ebay.com/aw/pics/dot_clear.gif" },
    { "PictureURL": "fds" },
    { "PictureURL": "fds" }
    ]
}
}
这很有效

def verifyAddItem(args):
        #"""http://www.utilities-online.info/xmltojson/#.UXli2it4avc   """
    try:
        api = Trading(debug=args.debug, siteid=site_id, appid=app_id, token=token_id, config_file=None, certid=cert_id, devid=dev_id)

        myitem = {
            "Item": {
                "Country": "GB",
                "Description": description,
                "ItemID": item_to_revise,
                "PictureDetails": {
                    "PictureURL": "http://www.itcircleconsult.com/eb2017/4a.png"
                    },
                }
            }

        api.execute('ReviseFixedPriceItem', myitem)
        dump(api)
我一直在eBay和Python上工作

在这里查看一些工作示例。。我经常把它们拆开,然后在飞行中重新组装起来,但你可能会发现一些用处

还有一个I-ways检查器和一些BS4翻录来修改项目

另一个有用的功能是在此处查看易趣API调用索引:

然后使用XML-to-JSON转换器将需要的调用更改为pythong中更可读的格式

在这里:

有关添加图像和托管的说明:

注意:从版本889开始,在创建列表之前,您不需要使用此调用上载自托管图像。现在,您可以使用AddItem或AddFixedPriceItem调用在Item.PicturedDetails.PictureURL中一次指定多达12个自托管或EPS托管URL。但是,必须使用UploadSiteHostedPictures调用上载二进制附件

假设的JSON需要它。。除非将图片填充到项目中需要时间

我们俩都失踪了[]-学生犯了错误

{
"Item": {
    "PictureDetails": [
    { "PictureURL": "http://pics.ebay.com/aw/pics/dot_clear.gif" },
    { "PictureURL": "fds" },
    { "PictureURL": "fds" }
    ]
}
}

我知道这个问题已经很老了,但是我无意中发现了这个页面,因为我遇到了同样的问题并找到了正确的解决方案

如上所述,johnashu目前发布的解决方案不起作用。这是因为ebaysdk.utils.dict2xml转换字典的方式

上述解决方案包括:

{
"Item": {
    "PictureDetails": [
    { "PictureURL": "http://pics.ebay.com/aw/pics/dot_clear.gif" },
    { "PictureURL": "fds" },
    { "PictureURL": "fds" }
    ]
}
}
输出以下内容的XML:

<Item>
  <PictureDetails>
    <PictureURL>http://pics.ebay.com/aw/pics/dot_clear.gif</PictureURL>
  </PictureDetails>
  <PictureDetails>
    <PictureURL>fds</PictureURL>
  </PictureDetails>
  <PictureDetails>
    <PictureURL>fds</PictureURL>
  </PictureDetails>
</Item>
这为我们提供了以下XML输出:

<Item>
  <PictureDetails>
    <PictureURL>http://pics.ebay.com/aw/pics/dot_clear.gif</PictureURL>
    <PictureURL>fds</PictureURL>
    <PictureURL>fds</PictureURL>
  </PictureDetails>
</Item>

http://pics.ebay.com/aw/pics/dot_clear.gif
fds
fds

与中描述的格式匹配。

我知道这个问题很老了,但我偶然发现了这个页面,因为我遇到了相同的问题并找到了正确的解决方案

如上所述,johnashu目前发布的解决方案不起作用。这是因为ebaysdk.utils.dict2xml转换字典的方式

上述解决方案包括:

{
"Item": {
    "PictureDetails": [
    { "PictureURL": "http://pics.ebay.com/aw/pics/dot_clear.gif" },
    { "PictureURL": "fds" },
    { "PictureURL": "fds" }
    ]
}
}
输出以下内容的XML:

<Item>
  <PictureDetails>
    <PictureURL>http://pics.ebay.com/aw/pics/dot_clear.gif</PictureURL>
  </PictureDetails>
  <PictureDetails>
    <PictureURL>fds</PictureURL>
  </PictureDetails>
  <PictureDetails>
    <PictureURL>fds</PictureURL>
  </PictureDetails>
</Item>
这为我们提供了以下XML输出:

<Item>
  <PictureDetails>
    <PictureURL>http://pics.ebay.com/aw/pics/dot_clear.gif</PictureURL>
    <PictureURL>fds</PictureURL>
    <PictureURL>fds</PictureURL>
  </PictureDetails>
</Item>

http://pics.ebay.com/aw/pics/dot_clear.gif
fds
fds

与中描述的格式匹配。

您可以将ReviseListedItem更改为ReviseItem或任何您希望进行的调用。。请注意,我经常使用Python3.6Thanks。用你的例子,我可以改变主图像。但是我想添加图像到项目中,而不是更改主图像。怎么办?对不起,我忘了提。。要指定多个图片,请在单独的PicturedDetails.PictureURL元素中发送每个URL。传入的第一个URL将是Gallery图像,并显示在“查看项目”页面上。我已编辑了一些代码的主要帖子。请告诉我我做错了什么。嗨,我已经更新了我的答案,并在底部添加了托管说明。。代码应该是正确的..您可以将ReviseListedItem更改为ReviseItem或任何您希望进行的调用。。请注意,我经常使用Python3.6Thanks。用你的例子,我可以改变主图像。但是我想添加图像到项目中,而不是更改主图像。怎么办?对不起,我忘了提。。要指定多个图片,请在单独的PicturedDetails.PictureURL元素中发送每个URL。传入的第一个URL将是Gallery图像,并显示在“查看项目”页面上。我已编辑了一些代码的主要帖子。请告诉我我做错了什么。嗨,我已经更新了我的答案,并在底部添加了托管说明。。代码应该是正确的。。