代码之家  ›  专栏  ›  技术社区  ›  Robert Andrews

如何将JSON结果拆分为多个Zapier资产?

  •  0
  • Robert Andrews  · 技术社区  · 6 年前
    我目前有python代码来调用API,如下所示…

    '内容类型':'文本/普通', r=requests.get('https://api.cognitive.microsoft.com/bing/v7.0/news/search?Q=%22Donald%20Trump%22&textDecorations=true&textform=html&sortby=date&freshness=day',headers=headers)

    问题是,当我想在随后的zapier步骤中使用这些结果的内容时,它们都混合在同一响应对象中-也就是说,来自多个返回的内部故事对象的每个等效值都放置在同一个可用zapier值中,用逗号分隔。

    示例:可用的“category”值为“null,null,null,world,null,politics,politics,politics,null,null”,用于对象中返回的10个故事-但它应仅是其中之一,用于一个故事。

    换句话说,我如何个性化资产/对象,以便让Zapier单独处理它们?

    var matches=inputdata.body.match(/\b[\w-]32 \b/g) 返回str:“false”

    每个代码示例的最后一行似乎保存着密钥…在javascript中,映射一些东西…?。

    “readlink”:“https://api.cognitive.microsoft.com/api/v7/news/search?Q=%22Donald+Trump%22“, “originalquery”:“Donald Trump\”, “排序”:。[ } “值”:。[ “图像”:。{ “高度”:394 “关于”:。[ “readlink”:“https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b”, },请 “name”:“账单” “日期发布”:“2018-06-19t09:39:00.0000000 Z”, “图像”:。{ “contenturl”:“https://www.bing.com/th?ID=on.7225F1783FD189C842151F29E579409A&PID=news“, },请 “关于”:。[ “name”:“唐纳德·特朗普” ],请 ],请 { },请 “关于”:。[ “readlink”:“https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b”, } “提供者”:。[ “日期发布”:“2018-06-19t09:38:00.0000000 Z”, },请 “图像”:。{ “宽度”:700, },请 “readlink”:“https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b”, { { “name”:“农民工” ],请 } { “图像”:。{ “contenturl”:“https://www.bing.com/th?id=on.d99b1336cdd2c2bfbd080e78c100052&pid=news“, } “name”:“唐纳德·特朗普” { },请 “name”:“敬礼” ],请 “name”:“滚动” “日期发布”:“2018-06-19t09:35:00.0000000 Z”, { “图像”:。{ “contenturl”:“https://www.bing.com/th?id=on.6a02d23b98fb3695cb79863006e25d86&pid=news“, } “关于”:。[ “name”:“唐纳德·特朗普” “readlink”:“https://api.cognitive.microsoft.com/api/v7/entities/5fcc3d97-0cf2-94e5-6dad-cd70e387bd69”, } “提供者”:。[ “name”:“新印度快车” ],请 },请 “name”:“必须保持家庭团结:联合国秘书长安东尼奥·古特雷斯(Antonio Guterres)关于唐纳德·特朗普(Donald Trump)的零容忍移民政策”, “描述”:“联合国:在美国总统唐纳德·特朗普(Donald Trump)</b>&39;的强硬移民政策导致数百人分居之际,联合国秘书长安东尼奥·古特雷斯(Antonio Guterres)表示,孩子们不能因为与父母分离而受到伤害。”…“, { },请 “name”:“零公差” ],请 { } },请 “url”:“https://www.technologyreview.com/the download/611499/Donald Trump已命令五角大楼创建美国太空部队/”, “缩略图”:。{ “宽度”:700, } “描述”:“太空部队将构成美国武装部队的第六个分支。新闻:在今天与美国国家空间委员会的一次会议上,美国总统唐纳德·特朗普(Donald Trump)指示国防部和五角大楼开始致力于……的创建工作, “关于”:。[ { “readlink”:“https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b”, “name”:“唐纳德·特朗普” },请 { “readlink”:“https://api.cognitive.microsoft.com/api/v7/entities/f8e3b5fa-8d72-5bd7-c9c1-24ef1caf555a”, “name”:“五角大楼” } ],请 “提供者”:。[ { “_type”:“组织”, “name”:“麻省理工学院技术评论” } ],请 “日期发布”:“2018-06-19t09:32:00.0000000 Z” },请 { “name”:“Melania Trump__讨厌看到__孩子在边界与家人分离”, “url”:“http://miami.cbsocal.com/2018/06/17/melania trump hates children separated family/”, “图像”:。{ “缩略图”:。{ “contenturl”:“https://www.bing.com/th?id=on.e7697ba498ae34b1399416f5c5b00df&pid=news“, “宽度”:700, “高度”:466 } },请 “description”:“总统唐纳德·特朗普(Donald Trump)</b>多次指责民主党造成这种局面,尽管他的政府正在制定政策改变。民主党人可以通过与共和党人合作制定新的立法来解决他们在边境地区被迫家庭破裂的问题……, “关于”:。[ { “readlink”:“https://api.cognitive.microsoft.com/api/v7/entities/6f7c7020-66da-2934-a3bb-190380654848”, “name”:“梅兰妮娅·特朗普” } ],请 “提及”:。[ { “name”:“梅兰妮娅·特朗普” },请 { “name”:“WFOR-TV” },请 { “name”:“子项” } ],请 “提供者”:。[ { “_type”:“组织”, “name”:“CBS迈阿密” } ],请 “日期发布”:“2018-06-19t09:32:00.0000000 Z”, “category”:“政治” },请 { “name”:“哈里王子说给唐纳德·特朗普一个机会,”梅根·马克尔的父亲说, “url”:“https://www.stuff.co.nz/life-style/104818877/prince-harry-said-give-donald-trump-a-chance-says-meghan-markles-father”, “图像”:。{ “缩略图”:。{ “contenturl”:“https://www.bing.com/th?id=on.a5ce69acf78448306ea41b1a47ccd62e&pid=news“, “宽度”:620, “高度”:349 } },请 “描述”:“梅根·马克尔的父亲说,哈里王子让他给唐纳德·特朗普一个机会,并建议他对英国退出欧盟持开放态度。在对英国广播公司ITV的一次长时间采访中,托马斯·马克尔说哈里是一个…… “关于”:。[ { “readlink”:“https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b”, “name”:“唐纳德·特朗普” },请 { “readlink”:“https://api.cognitive.microsoft.com/api/v7/entities/ae7736c2-4291-bc85-8732-6d20c29ff943”, “name”:“哈里王子” },请 { “readlink”:“https://api.cognitive.microsoft.com/api/v7/entities/e4308957-a185-03fa-10ed-3c7b47fd0ea”, “name”:“梅根马克” } ],请 “提供者”:。[ { “_type”:“组织”, “name”:“stufacture.co.nz” } ],请 “日期发布”:“2018-06-19t09:31:00.0000000 Z” } ] } 以获取与某个查询匹配的结果。

    我正在使用Zapier.我用的是Code step,它可以采用javascript的python。 我现在有python代码来调用API,如下所示…

    headers = {
        'Content-Type': 'text/plain',
        'Ocp-Apim-Subscription-Key': 'my_api_key'
    }
    r = requests.get('https://api.cognitive.microsoft.com/bing/v7.0/news/search?q=%22Donald%20Trump%22&textDecorations=true&textFormat=HTML&sortBy=Date&freshness=Day', headers=headers)
    
    
    output = [{'assets': r.json()}]
    

    这个很好用。它成功地调用并获得结果。

    问题是,当我想在随后的zapier步骤中使用这些结果的内容时,它们都混合在同一个响应对象中——也就是说,来自多个返回的内部层对象的每个等效值都放置在相同的可用zapier值中。,用逗号分隔。

    示例:对于对象中返回的10个故事,可用的“category”值为“nullnullnull、world、null、politics、politics、politics、nullnull”,但对于一个故事,它应该仅是其中之一。

    enter image description here

    换句话说,我如何个性化资产/对象,以便让Zapier单独处理它们是吗?

    我想说的是,这不仅仅是分析价值观,而是以一种Zapier能够理解的方式进行分析。不过,我以前用另一种语言做过一次……

    举例来说,对于这个相同的原则,我有一个单独的zap用于另一个目的,它做了类似的事情。它接收传入的gmail电子邮件并检查正文(inputdata.body)中是否有与特定模式匹配的字符串。可能有多个这样的字符串。对于其中的每一个,下面的javascript将分别传递倍数他们中的一个单独到下一个扎皮尔台阶。

    // stores an array of any length (0 or more) with the matches
    var matches = inputData.body.match(/\b[\w-]{32}\b/g)
    
    if (matches == null) {
        return { str: "false" }
    }
    return matches.map(function (m) { return {str: m} })
    

    这神奇地允许我随后的zap步骤只针对单个字符串,而不是一组多个字符串。如何在上面的API代码中实现类似的效果?

    每个代码示例的最后一行似乎保存着密钥…在javascript中,映射一些东西…是吗?

    以下是每个请求的响应示例…

    {
        "_type": "News",
        "readLink": "https://api.cognitive.microsoft.com/api/v7/news/search?q=%22Donald+Trump%22",
        "queryContext": {
            "originalQuery": "\"Donald Trump\"",
            "adultIntent": false
        },
        "totalEstimatedMatches": 73200,
        "sort": [
            {
                "name": "Best match",
                "id": "relevance",
                "isSelected": false,
                "url": "https://api.cognitive.microsoft.com/api/v7/news/search?q=%22Donald+Trump%22"
            },
            {
                "name": "Most recent",
                "id": "date",
                "isSelected": true,
                "url": "https://api.cognitive.microsoft.com/api/v7/news/search?q=%22Donald+Trump%22&sortby=date"
            }
        ],
        "value": [
            {
                "name": "Democrats to <b>Donald Trump</b>: Here&#39;s a Bill to Outlaw Family Separation",
                "url": "https://www.rollingstone.com/politics/news/democrats-give-trump-a-bill-to-outlaw-family-separation-w521650",
                "image": {
                    "thumbnail": {
                        "contentUrl": "https://www.bing.com/th?id=ON.E5F488C11B8B2C7578200936C34BA0C3&pid=News",
                        "width": 700,
                        "height": 394
                    }
                },
                "description": "All 49 Democrats in the Senate have signed on to a bill that would end Trump&#39;s policy of &quot;child-snatching&quot; A two-year-old Honduran asylum seeker cries as her mother is searched and detained near the U.S.-Mexico border on June 12th, 2018 in McAllen, Texas.",
                "about": [
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b",
                        "name": "Donald Trump"
                    },
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/5e00ddc3-bb67-a2c7-702a-929095be2f19",
                        "name": "Bill"
                    }
                ],
                "provider": [
                    {
                        "_type": "Organization",
                        "name": "Rolling Stone"
                    }
                ],
                "datePublished": "2018-06-19T09:39:00.0000000Z",
                "category": "Politics"
            },
            {
                "name": "Republicans break from Trump on migrant family separation",
                "url": "https://www.nbcnews.com/politics/first-read/republicans-break-trump-migrant-family-separation-n884171",
                "image": {
                    "thumbnail": {
                        "contentUrl": "https://www.bing.com/th?id=ON.7225F1783FD189C842151F29E579409A&pid=News",
                        "width": 700,
                        "height": 367
                    }
                },
                "description": "WASHINGTON — The lowest points of <b>Donald Trump</b>’s presidency have tended to occur when a sizable portion of his own party has criticized him for his actions, policies and statements (even when the GOP doesn’t necessarily act on that criticism).",
                "about": [
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b",
                        "name": "Donald Trump"
                    }
                ],
                "provider": [
                    {
                        "_type": "Organization",
                        "name": "NBC News"
                    }
                ],
                "datePublished": "2018-06-19T09:38:00.0000000Z",
                "category": "Politics"
            },
            {
                "name": "Anger mounts against Trump over child separation policy",
                "url": "https://www.aljazeera.com/news/2018/06/anger-mounts-trump-child-separation-policy-180618071221478.html",
                "image": {
                    "thumbnail": {
                        "contentUrl": "https://www.bing.com/th?id=ON.B6724EE606A4241FC8E9441331E20A67&pid=News",
                        "width": 700,
                        "height": 392
                    }
                },
                "description": "Pressure is mounting on US President <b>Donald Trump</b> to reverse his policy of separating children from refugees and migrants who cross the US-Mexico border. &quot;Families belong together,&quot; protesters chanted on Sunday, as hundreds gathered outside detention ...",
                "about": [
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b",
                        "name": "Donald Trump"
                    }
                ],
                "provider": [
                    {
                        "_type": "Organization",
                        "name": "Al Jazeera English"
                    }
                ],
                "datePublished": "2018-06-19T09:38:00.0000000Z",
                "category": "Politics"
            },
            {
                "name": "President Trump Defends Immigration Policy, Says He Won&#39;t Let U.S. Became a &#39;Migrant Camp&#39;",
                "url": "https://www.msn.com/en-us/news/other/president-trump-defends-immigration-policy-says-he-wont-let-us-became-a-migrant-camp/ar-AAyOCt4",
                "image": {
                    "thumbnail": {
                        "contentUrl": "https://www.bing.com/th?id=ON.303D80992671B38688C86FEFC0F5F4B2&pid=News",
                        "width": 700,
                        "height": 498
                    }
                },
                "description": "WASHINGTON — Facing rising outrage from some Republicans as well as Democrats over the forced separation of migrant children and parents at the U.S.-Mexico border, President <b>Donald Trump</b> dug in Monday, again falsely blaming Democrats and declaring he ...",
                "about": [
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b",
                        "name": "Donald Trump"
                    }
                ],
                "mentions": [
                    {
                        "name": "Donald Trump"
                    },
                    {
                        "name": "United States"
                    },
                    {
                        "name": "Migrant worker"
                    }
                ],
                "provider": [
                    {
                        "_type": "Organization",
                        "name": "Time"
                    }
                ],
                "datePublished": "2018-06-19T09:36:00.0000000Z",
                "category": "Politics"
            },
            {
                "name": "Watch: <b>Donald Trump</b> awkwardly salutes a North Korean general at Singapore summit",
                "url": "https://scroll.in/video/882762/watch-donald-trump-awkwardly-salutes-a-north-korean-general-at-singapore-summit",
                "image": {
                    "thumbnail": {
                        "contentUrl": "https://www.bing.com/th?id=ON.D99B1336CDD2C22BFBD080E78C100052&pid=News",
                        "width": 600,
                        "height": 315
                    }
                },
                "description": "The North Korean state media aired a documentary on the recent Singapore summit, showing the meeting between Kim Jong Un and <b>Donald Trump</b>. Naturally, it wasn’t what the world had seen till then. While the 42-minute long KCTV documentary showed the entire ...",
                "about": [
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b",
                        "name": "Donald Trump"
                    },
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/f5ffb882-7230-f3fe-7141-cde5f4b5ed1a",
                        "name": "Singapore"
                    },
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/f28f12db-bc21-69f9-3860-1b24810b64ec",
                        "name": "Salute"
                    }
                ],
                "provider": [
                    {
                        "_type": "Organization",
                        "name": "Scroll"
                    }
                ],
                "datePublished": "2018-06-19T09:35:00.0000000Z",
                "category": "World"
            },
            {
                "name": "China accuses US of blackmailing after <b>Donald Trump</b>&#39;s tariff threat",
                "url": "http://www.newindianexpress.com/world/2018/jun/19/china-accuses-us-of-blackmailing-after-donald-trumps-tariff-threat-1830391.html",
                "image": {
                    "thumbnail": {
                        "contentUrl": "https://www.bing.com/th?id=ON.6A02D23B98FB3695CB79863006E25D86&pid=News",
                        "width": 600,
                        "height": 300
                    }
                },
                "description": "BEIJING: China today accused the US of &quot;blackmailing&quot; by threatening to slap additional tariffs on USD 200 billion of Chinese goods and warned that it would hit back with comprehensive measures if Washington went ahead with the plan. China&#39;s response came ...",
                "about": [
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b",
                        "name": "Donald Trump"
                    },
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/5fcc3d97-0cf2-94e5-6dad-cd70e387bd69",
                        "name": "China"
                    }
                ],
                "provider": [
                    {
                        "_type": "Organization",
                        "name": "The New Indian Express"
                    }
                ],
                "datePublished": "2018-06-19T09:35:00.0000000Z",
                "category": "Business"
            },
            {
                "name": "Family unity must be preserved: UN Chief Antonio Guterres on <b>Donald Trump</b>&#39;s zero-tolerance immigration policy",
                "url": "http://www.newindianexpress.com/world/2018/jun/19/family-unity-must-be-preserved-un-chief-antonio-guterres-on-donald-trumps-zero-tolerance-immigrati-1830399.html",
                "description": "UNITED NATIONS: Children must not be traumatised by being separated from their parents, UN chief Antonio Guterres has said amid a growing backlash over US President <b>Donald Trump</b>&#39;s hardline immigration policy which has resulted in the separation of hundreds ...",
                "about": [
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b",
                        "name": "Donald Trump"
                    },
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/cba2f3bb-4714-89f7-8cd3-9cc8644da24b",
                        "name": "Zero tolerance"
                    }
                ],
                "provider": [
                    {
                        "_type": "Organization",
                        "name": "The New Indian Express"
                    }
                ],
                "datePublished": "2018-06-19T09:35:00.0000000Z"
            },
            {
                "name": "<b>Donald Trump</b> has ordered the Pentagon to create the US Space Force",
                "url": "https://www.technologyreview.com/the-download/611499/donald-trump-has-ordered-the-pentagon-to-create-the-us-space-force/",
                "image": {
                    "thumbnail": {
                        "contentUrl": "https://www.bing.com/th?id=ON.D9DA1E8B8E5DA38E7C6F5D6F5D3FD23C&pid=News",
                        "width": 700,
                        "height": 393
                    }
                },
                "description": "The Space Force would constitute the sixth branch of the US armed forces. The news: During a meeting with the National Space Council today, President <b>Donald Trump</b> directed the Department of Defense and the Pentagon to begin work on the creation of the ...",
                "about": [
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b",
                        "name": "Donald Trump"
                    },
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/f8e3b5fa-8d72-5bd7-c9c1-24ef1caf555a",
                        "name": "The Pentagon"
                    }
                ],
                "provider": [
                    {
                        "_type": "Organization",
                        "name": "MIT Technology Review"
                    }
                ],
                "datePublished": "2018-06-19T09:32:00.0000000Z"
            },
            {
                "name": "Melania Trump “Hates To See” Children Separated From Their Families At Borders",
                "url": "http://miami.cbslocal.com/2018/06/17/melania-trump-hates-children-separated-families/",
                "image": {
                    "thumbnail": {
                        "contentUrl": "https://www.bing.com/th?id=ON.E7697BA498AEE34B1399416F5C5B00DF&pid=News",
                        "width": 700,
                        "height": 466
                    }
                },
                "description": "President <b>Donald Trump</b> has repeatedly blamed the Democrats for the situation despite his administration instituting the policy change. “Democrats can fix their forced family breakup at the Border by working with Republicans on new legislation ...",
                "about": [
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/6f7c7020-66da-2934-a3bb-190380654848",
                        "name": "Melania Trump"
                    }
                ],
                "mentions": [
                    {
                        "name": "Melania Trump"
                    },
                    {
                        "name": "WFOR-TV"
                    },
                    {
                        "name": "Child"
                    }
                ],
                "provider": [
                    {
                        "_type": "Organization",
                        "name": "CBS Miami"
                    }
                ],
                "datePublished": "2018-06-19T09:32:00.0000000Z",
                "category": "Politics"
            },
            {
                "name": "Prince Harry said &#39;give <b>Donald Trump</b> a chance,&#39; says Meghan Markle&#39;s father",
                "url": "https://www.stuff.co.nz/life-style/104818877/Prince-Harry-said-give-Donald-Trump-a-chance-says-Meghan-Markles-father",
                "image": {
                    "thumbnail": {
                        "contentUrl": "https://www.bing.com/th?id=ON.A5CE69ACF78448306EA41B1A47CCD62E&pid=News",
                        "width": 620,
                        "height": 349
                    }
                },
                "description": "Meghan Markle&#39;s father said that Prince Harry told him to give <b>Donald Trump</b> a chance and suggested that he was open about Britain&#39;s withdrawal from the European Union. In a lengthy interview with the British broadcaster ITV, Thomas Markle said Harry was an ...",
                "about": [
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/1a466af2-ed23-25bd-794d-1ca925e4681b",
                        "name": "Donald Trump"
                    },
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/ae7736c2-4291-bc85-8732-6d20c29ff943",
                        "name": "Prince Harry"
                    },
                    {
                        "readLink": "https://api.cognitive.microsoft.com/api/v7/entities/e4308957-a185-03fa-10ed-3c7b47fd0aea",
                        "name": "Meghan Markle"
                    }
                ],
                "provider": [
                    {
                        "_type": "Organization",
                        "name": "Stuff.co.nz"
                    }
                ],
                "datePublished": "2018-06-19T09:31:00.0000000Z"
            }
        ]
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   xavdid    6 年前

    大卫在这里,来自扎皮尔平台团队。

    • object (蟒蛇的) dict
    • 如果返回的结构是 array list

    最初,您返回的是 列表