2016-07-13 15 views
0

wenn ich den folgenden curl Befehl verwenden: (die Token ungültig sind keine Sorge)cURL-Befehl in Smartsheet

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

erhalte ich eine Reihe von Daten wie folgt aussehen:

{ 
     "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 
      } 
     ], 

Jetzt Ich weiß, dass es jede Reihe von Daten für die Spalten zeigt, die gefüllt sind, aber ich wollte wissen, ob es überhaupt möglich ist, ich könnte das vereinfachen, um nur das auszuspucken, was ich brauche, zum Beispiel nur displayValue für die Spalten, in denen Daten sind? Jede Hilfe wäre super, danke!

Antwort

1

Sie benötigen eine Programmiersprache, um die Daten, die von Smartsheet zurückkommen, logisch zu manipulieren. Ich würde empfehlen, dies mit einem der vorhandenen SDKs zu tun, die Smartsheet anbietet. Smartsheet verfügt derzeit über SDKs für Java, C#, Javascript, Python und PHP, die alle unter this page aufgelistet sind.

Das heißt, Sie können diese Aufgabe auch mit bash mit curl, grep, cut oder jq erreichen.

Zuerst können Sie grep das Ergebnis auf nur displayValue beschränken.

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

Dann können Sie dies noch einen Schritt weiter und nur die Werte anzeigen, indem Sie mit cut:

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

Sie auch ein Tool wie jq verwenden könnte, die die Fähigkeit hat, mit zu arbeiten Json-Ausgabe. Sie können einen Befehl wie den folgenden verwenden, um nur den displayValue abzurufen.

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

Dann kann Sie noch einen Schritt weiter und entfernen Sie die Null-Ergebnisse:

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

ich diese Methoden versuche curl verwenden, und sie verarbeiten nicht im Terminal. Irgendeine spezielle Sache, die ich tun muss, bevor ich diese Befehle benutze? – Jsant

+0

Zusätzliche Daten: Zeile 1 Spalte 17 - Zeile 2 Spalte 1 (Zeichen 16 - 24) <--- Das ist die Antwort, die ich bekomme, wenn ich den Befehl cut mit grep verwende – Jsant

+0

@Jsant Probiere die Befehle jetzt aus. Ich habe den Befehl 'python' hinzugefügt, um die Ausgabe vor der Verwendung von grep zu formatieren. Wenn Sie [jq] (https://stedolan.github.io/jq/) verwenden möchten, müssen Sie es herunterladen und installieren. – Brett