JSON = ne pas importer les Data inferieur à "X"

Bonjour,

Comment limiter l'importation de données selon une condition à partir de App Script ?

Voici mon script en l'état :

function SwapCat_RealT() {

  var url = "https://api.realt-dashboard.co/get-swapcat-offers?chainId=100";
  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var feuille = classeur.getSheetByName('SwapCat_RealT');
  var cell = feuille.getRange('A2:J');

  var response = UrlFetchApp.fetch(url, {
    "method": "GET",
    "headers": {
      "x-api-key": "_____Ma clé_____",
      "Content-Type": "application/json"
    }
  });

  cell.clearContent();

  var output = [];
  var json = response.getContentText();
  var realtData = JSON.parse(json);
  for (let i in realtData) {

    var blockchain = realtData[i].blockchain
    var selling = realtData[i].selling
    var seller = realtData[i].seller
    var buying = realtData[i].buying
    var sellingQuantity = realtData[i].sellingQuantity /1000000000000000000
    var totalPrice =realtData[i].totalPrice
    var house = realtData[i].sellingData.property.name
    var UnitePrice = totalPrice/sellingQuantity
    var UniteCrypto = realtData[i].buyingData.name

    var realPrice = realtData[i].sellingData.token.value
    var offerId = realtData[i].offerId

    var Ecart$ = UnitePrice-realPrice
    var Ecart = Ecart$/UnitePrice

    var buyingTokenVerified = realtData[i].buyingData.buyingTokenVerified

    output.push([blockchain, selling, house, sellingQuantity, UnitePrice, UniteCrypto, seller, Ecart$, Ecart,'=hyperlink("https://swap.cat/?oid=' + offerId + '&chain=100")']);
  }
  if (output.length > 0) {
    feuille.getRange(2,1, output.length, output[0].length).setValues(output).sort({column: 8, ascending: true});
  } 
}

et voici le rendu.

image

j'aimerai ne pas importer les données donc la quantité est inferieur à 0.5 mais j'ignore comment modifier mon script pour un tel tri..

je ne sais pas si je doit mettre une condition sur "sellingQuantity" ou sur autre chose.

merci beaucoup

bon dimanche !

Bonjour Alex,

ajoute un test sur la

sellingQuantity

en fonction de quelquechose

  for (let i in realtData) {
  if (realtData[i].sellingQuantity > quelquechose) {
    var blockchain = realtData[i].blockchain
    var selling = realtData[i].selling
    var seller = realtData[i].seller
    var buying = realtData[i].buying
    var sellingQuantity = realtData[i].sellingQuantity /1000000000000000000
    var totalPrice =realtData[i].totalPrice
    var house = realtData[i].sellingData.property.name
    var UnitePrice = totalPrice/sellingQuantity
    var UniteCrypto = realtData[i].buyingData.name

    var realPrice = realtData[i].sellingData.token.value
    var offerId = realtData[i].offerId

    var Ecart$ = UnitePrice-realPrice
    var Ecart = Ecart$/UnitePrice

    var buyingTokenVerified = realtData[i].buyingData.buyingTokenVerified

    output.push([blockchain, selling, house, sellingQuantity, UnitePrice, UniteCrypto, seller, Ecart$, Ecart,'=hyperlink("https://swap.cat/?oid=' + offerId + '&chain=100")']);
  }
  }

Bonjour,

j'avais déjà essayé comme ceci :

function SwapCat_RealT() {

  var url = "https://api.realt-dashboard.co/get-swapcat-offers?chainId=100";
  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var feuille = classeur.getSheetByName('SwapCat_RealT');
  var cell = feuille.getRange('A2:J');

  var response = UrlFetchApp.fetch(url, {
    "method": "GET",
    "headers": {
      "x-api-key": "_____ma clé______",
      "Content-Type": "application/json"
    }
  });

  cell.clearContent();

  var output = [];
  var json = response.getContentText();
  var realtData = JSON.parse(json);
  for (let i in realtData) {

  if (realtData[i].sellingQuantity > 0.1){

    var blockchain = realtData[i].blockchain
    var selling = realtData[i].selling
    var seller = realtData[i].seller
    var buying = realtData[i].buying
    var sellingQuantity = realtData[i].sellingQuantity /1000000000000000000
    var totalPrice =realtData[i].totalPrice
    var house = realtData[i].sellingData.property.name
    var UnitePrice = totalPrice/sellingQuantity
    var UniteCrypto = realtData[i].buyingData.name

    var realPrice = realtData[i].sellingData.token.value
    var offerId = realtData[i].offerId

    var Ecart$ = UnitePrice-realPrice
    var Ecart = Ecart$/UnitePrice

    var buyingTokenVerified = realtData[i].buyingData.buyingTokenVerified

    output.push([blockchain, selling, house, sellingQuantity, UnitePrice, UniteCrypto, seller, Ecart$, Ecart,'=hyperlink("https://swap.cat/?oid=' + offerId + '&chain=100")']);
  }
  }
  if (output.length > 0) {
    feuille.getRange(2,1, output.length, output[0].length).setValues(output).sort({column: 8, ascending: true});
  } 
}

mais pas d'impact

ainsi que ça :

function SwapCat_RealT() {

  var url = "https://api.realt-dashboard.co/get-swapcat-offers?chainId=100";
  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var feuille = classeur.getSheetByName('SwapCat_RealT');
  var cell = feuille.getRange('A2:J');

  var response = UrlFetchApp.fetch(url, {
    "method": "GET",
    "headers": {
      "x-api-key": "_____ma clé______",
      "Content-Type": "application/json"
    }
  });

  cell.clearContent();

  var output = [];
  var json = response.getContentText();
  var realtData = JSON.parse(json);
  for (let i in realtData) {

  if (realtData[i].sellingQuantity > 0.1){

    var blockchain = realtData[i].blockchain
    var selling = realtData[i].selling
    var seller = realtData[i].seller
    var buying = realtData[i].buying
    var sellingQuantity = realtData[i].sellingQuantity /1000000000000000000
    var totalPrice =realtData[i].totalPrice
    var house = realtData[i].sellingData.property.name
    var UnitePrice = totalPrice/sellingQuantity
    var UniteCrypto = realtData[i].buyingData.name

    var realPrice = realtData[i].sellingData.token.value
    var offerId = realtData[i].offerId

    var Ecart$ = UnitePrice-realPrice
    var Ecart = Ecart$/UnitePrice

    var buyingTokenVerified = realtData[i].buyingData.buyingTokenVerified

    output.push([blockchain, selling, house, sellingQuantity, UnitePrice, UniteCrypto, seller, Ecart$, Ecart,'=hyperlink("https://swap.cat/?oid=' + offerId + '&chain=100")']);
  }
  feuille.getRange(2,1, output.length, output[0].length).setValues(output).sort({column: 8, ascending: true});
  } 
}

sur cette version le chargement est plus long mais le resultat reste le meme

C'est quoi la différence entre les 2 ?

mais je vis aussi que tu divises par /1000000000000000000 à prendre en compte dans le critère ?

C'est quoi la différence entre les 2 ?

j'ai juste supprimé en bas du script le

if (output.length > 0)

mais je vis aussi que tu divises par /1000000000000000000 à prendre en compte dans le critère ?

Je me retrouve avec un format " 2E+18 " par ex sinon c'est simplement pour une meilleur visibilité

Tu importes peut-être du texte et dans ce cas il faut essayer

if ((1 * realtData[i].sellingQuantity) > 0.1){

Pas de changement

ce qui est étonnant avec ce format la :

[....] 

var output = [];
  var json = response.getContentText();
  var realtData = JSON.parse(json);
  for (let i in realtData) {

    if (realtData[i].sellingQuantity > 0.1){

    var blockchain = realtData[i].blockchain
    var selling = realtData[i].selling
    var seller = realtData[i].seller
    var buying = realtData[i].buying
    var sellingQuantity = realtData[i].sellingQuantity /1000000000000000000
    var totalPrice =realtData[i].totalPrice
    var house = realtData[i].sellingData.property.name
    var UnitePrice = totalPrice/sellingQuantity
    var UniteCrypto = realtData[i].buyingData.name

    var realPrice = realtData[i].sellingData.token.value
    var offerId = realtData[i].offerId

    var Ecart$ = UnitePrice-realPrice
    var Ecart = Ecart$/UnitePrice

    var buyingTokenVerified = realtData[i].buyingData.buyingTokenVerified

    output.push([blockchain, selling, house, sellingQuantity, UnitePrice, UniteCrypto, seller, Ecart$, Ecart,'=hyperlink("https://swap.cat/?oid=' + offerId + '&chain=100")']);
  }
    feuille.getRange(2,1, output.length, output[0].length).setValues(output).sort({column: 8, ascending: true});
  } 
}

c'est que le résultat semble bon et quelque chose force l'affichage des valeurs inferieurs à 0.1 ( le script est plus long que d'habitude )

pendant l'espace de quelques seconde, j'ai bien les valeurs >0.1 mais lorsque l'exécution est fini je me retrouve avec l'ensemble des data


EDIT : problème résolu

il fallait mettre ceci

if ((1*realtData[i].sellingQuantity/1000000000000000000)>0.1){

merci !

Rechercher des sujets similaires à "json pas importer data inferieur"