2016-07-13 117 views
0

当我使用下面的curl命令:(令牌无效不用担心)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

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

也就是说,你也可以用bash使用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' 
+0

我使用curl尝试这些方法,它们不是在终端处理。在使用这些命令之前,我必须做的任何特殊事情? – Jsant

+0

额外数据:第1行第17行第2列第1列(char 16 - 24)<---多数民众赞成我当我使用剪切命令与grep – Jsant

+0

@Jsant得到的响应现在尝试命令。我在使用grep之前添加了'python'命令来格式化输出。如果您想使用[jq](https://stedolan.github.io/jq/),则需要下载并安装它。 – Brett