首页 > 解决方案 > 在 Python 中动态构建 json

问题描述

我正在尝试在 Python 中构建 JSON。我想把它发给 Slack。

xxdata = []
xxdata.append("Option A")
xxdata.append("Option B")
data=[]
for xx in xxdata:
    item = {"text": {
                        "type": "plain_text",
                        "text": xx,
                        "emoji": True
                    }}
    data.append(dict(item))
jsonData=json.dumps(data)

这就是我将它发送到松弛的方式:

        {
        "type": "section",
        "block_id": "Settings1",
        "text": {
            "type": "mrkdwn",
            "text": ":gear: *MAIN*\nSelect your main group"
        },
        "accessory": {
            "type": "static_select",
            "placeholder": {
                "type": "plain_text",
                "text": "Option A",
                "emoji": True
            },
            "options": jsonData,
            "action_id": "NotificationSelect"
        }

但是,当它被发送到 Slack - 我在选项数据之前和之后得到额外的引号:

    {
     "type": "section", 
     "block_id": "Settings1", 
     "text": 
           {
               "type": "mrkdwn", 
               "text": ":gear: *MAIN*\nSelect your main group"}, 
     "accessory": {
               "type": "static_select",
               "placeholder": {
                       "type": "plain_text", 
                       "text": "Option A", 
                       "emoji": true}, 
     "options": "[
                 {
                  "text": 
                        {"type": "plain_text", 
                         "text": "Option A",  
                         "emoji": true}
                 },
                 {"text": 
                        {"type": "plain_text", 
                         "text": "Option B", 
                         "emoji": true}
                 }
  ]", 
       
 "action_id": "NotificationSelect"}},

这导致 Slack 失败。我究竟做错了什么?如果我删除这些引号,一切正常。

标签: pythonjsonslack

解决方案


jsonData=json.dumps(data)正在从您的列表中创建一个字符串。data直接使用而不是,jsonData你应该没问题。


推荐阅读