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.
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 !