智能表中的cURL命令

时间:2016-07-13 13:41:00

标签: curl terminal smartsheet-api smartsheet-java-sdk-v2

当我使用以下curl命令时:(令牌无效,请不要担心)

curl https://api.smartsheet.com/2.0/sheets/5848367060424580 -H "Authorization: Bearer 21txb6n2silf6dhsil8g9jxtdu" | python -m json.tool

我得到了一堆看起来像这样的数据:

 {
        "id": 1888886872926084,
        "index": 0,
        "primary": true,
        "title": "Primary Column",
        "type": "TEXT_NUMBER",
        "width": 150
    },
    {
        "id": 6392486500296580,
        "index": 1,
        "title": "Column2",
        "type": "TEXT_NUMBER",
        "width": 150
    },
    {
        "id": 4140686686611332,
        "index": 2,
        "title": "Column3",
        "type": "TEXT_NUMBER",
        "width": 150
    },
    {
        "id": 8644286313981828,
        "index": 3,
        "title": "Column4",
        "type": "TEXT_NUMBER",
        "width": 150
    },
    {
        "id": 481511989372804,
        "index": 4,
        "title": "Column5",
        "type": "TEXT_NUMBER",
        "width": 150
    },
    {
        "id": 4985111616743300,
        "index": 5,
        "title": "Column6",
        "type": "TEXT_NUMBER",
        "width": 150
    }
],
"createdAt": "2016-07-07T14:44:38Z",
"dependenciesEnabled": false,
"effectiveAttachmentOptions": [
    "FILE",
    "ONEDRIVE",
    "GOOGLE_DRIVE",
    "EVERNOTE",
    "BOX_COM",
    "EGNYTE",
    "DROPBOX"
],
"ganttEnabled": false,
"id": 5848567060424580,
"modifiedAt": "2016-07-07T15:22:53Z",
"name": "JagTestSheet",
"permalink": "https://app.smartsheet.com/b/home?lx=PoM3LKb9HF6g_jsJ9JoWwg",
"resourceManagementEnabled": false,
"rows": [
    {
        "cells": [
            {
                "columnId": 1888886872926084,
                "displayValue": "234",
                "value": 234.0
            },
            {
                "columnId": 6392486500296580,
                "displayValue": "657",
                "value": 657.0
            },
            {
                "columnId": 4140686686611332,
                "displayValue": "875",
                "value": 875.0
            },
            {
                "columnId": 8644286313981828
            },
            {
                "columnId": 481511989372804
            },
            {
                "columnId": 4985111616743300
            }
        ],

现在,我知道它显示了填充的列的每一行数据,但我想知道是否有任何方式我可以简化这只是为了吐出我需要的东西,例如只有displayValue用于列中的列数据在?任何帮助都会很棒,谢谢!

1 个答案:

答案 0 :(得分:1)

您需要一种编程语言来逻辑操作从Smartsheet返回的数据。我建议使用Smartsheet提供的现有SDK之一。 Smartsheet目前在this page上列出了Java,C#,Javascript,Python和PHP的SDK。

也就是说,你也可以使用curl,grep,cut或jq来完成这个任务。

首先,您可以grep将结果限制为仅显示值。

curl -s https://api.smartsheet.com/2.0/sheets/5848367060424580 -H "Authorization: Bearer 21txb6n2silf6dhsil8g9jxtdu" | python -m json.tool | grep displayValue

然后您可以更进一步,只使用cut

显示值
curl -s https://api.smartsheet.com/2.0/sheets/5848367060424580 -H "Authorization: Bearer 21txb6n2silf6dhsil8g9jxtdu" | python -m json.tool | grep displayValue | cut -d: -f2

您还可以使用jq等工具来处理json输出。您可以使用如下命令来仅获取displayValue。

curl -s https://api.smartsheet.com/2.0/sheets/5848367060424580 -H "Authorization: Bearer 21txb6n2silf6dhsil8g9jxtdu" | jq '.rows[].cells[].displayValue'

然后你可以更进一步,删除空结果:

curl -s https://api.smartsheet.com/2.0/sheets/5848367060424580 -H "Authorization: Bearer 21txb6n2silf6dhsil8g9jxtdu" | jq '.rows[].cells[] | select(.displayValue != null).displayValue'