如何将数组列表作为python对象返回?

2024-04-25 22:17:02 发布

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

我有一个方法可以在Generic template中向Facebook发送消息。 我的代码:

def send_receipt(self, fbid, title, url, img_url, summary):
    return self._send(message={
        "recipient": {
            "id": fbid
        },
        "message": {
            "attachment": {
                "type": "template",
                "payload": {
                    "template_type": "generic",
                    "elements": [
                        {
                            "title": title,
                            "item_url": url,
                            "image_url": img_url,
                            "subtitle": summary
                        }
                    ]
                }
            }
        }
    })

它对我来说很好,但它只返回1个元素。我想从JSON中获取2到3个元素,所以我认为可以通过创建一个element对象来实现,这个对象返回数组列表。

def send_receipt(self, fbid, elements):
    return self._send(message={
        "recipient": {
            "id": fbid
        },
        "message": {
            "attachment": {
                "type": "template",
                "payload": {
                    "template_type": "generic",
                    "elements": elements
                }
            }
        }
    })

我做了一个返回元素的方法。但我对python还不熟悉,所以我所做的对我来说并不管用。

elements = [{
            "title": title,
            "item_url": url,
            "image_url": img_url,
            "subtitle": summary }]

Tags: 方法selfsendurl元素messageimgtitle
1条回答
网友
1楼 · 发布于 2024-04-25 22:17:02

我所做的是创建一个方法,将结果转换为列表元素

temp = []
for index, product in enumerate(products):
    element = {'title': title,
               'subtitle': sumary,
               'item_url': item_url}
    #not every product has image_url so to prevent KeyError, I have a if
    if 'image_url' in product:
        element['image_url'] = image_url
    temp.append(element)
    # In Facebook API element is limited to 10
    if index == 9:
       break
return temp

相关问题 更多 >