第一次在Google Sheets中使用importJSON時遇到了一些麻煩。我的資料是以截斷的方式匯入的,而且我找不到任何方法來真正按我想要的方式過濾事物。
API來源。https://prices.runescape.wiki/api/v1/osrs/1h
我正在使用以下命令。=IMPORTJSON(B1;B2)
其中B1是源鏈接,而B2是指我所應用的任何過濾器。到目前為止,我還沒有過濾器。
我的結果是一個截斷的串列,顯示為:
我的結果是一個截斷的串列。
data/2/avgHighPrice 166
data/2/highPriceVolume 798801
data/2/avgLowPrice 162
data/2/lowPriceVolume 561908
資料/6/avgHighPrice 182132
資料/6/highPriceVolume 7
資料/6/avgLowPrice 180261
資料/6/低價成交量 37
資料/8/avgHighPrice 195209
資料/8/高價股4
資料/8/avgLowPrice 192880
data/8/lowPriceVolume 40
在我所看到和使用的例子中(主要是Addon所提供的例子),它將自然地透視成一個表格。我甚至不能實作這一點,這將是可行的,盡管我真的只想平移標記 avgHighPrice 和 avgLowPrice。
編輯:
我正在尋找類似這樣的結果:
我正在尋找類似這樣的結果。
| 2 | 6 | 8 | |
|---|---|---|---|
| /avgLowPrice | 180261 | 192880/avgHighPrice | |
| 166 |
編輯2:
所以我還有一件事希望能弄清楚。使用你的腳本,我創建了另一個腳本來提取名稱和專案ID
function naming(url){
//var url='https://prices.runescape.wiki/api/v1/osrs/mapping'
var data = JSON.parse(UrlFetchApp.fetch(url).getContentText())
var result = [] (結果
result.push(['#', 'id', 'name'])
for (let p in eval('data.data')) {
try{result.push([p,data.item(p).ID,data.item(p).Name])}catch(e){}.
}
回傳結果
}
Object.prototype.item=function(i){return this[i]};
我想知道是否有可能將物品名稱與初始定價腳本中的物品ID聯系起來。首先,第一個腳本只列出了可交易的物品,而第二個腳本則列出了游戲中所有的物品ID。我基本上想把第一和第二腳本關聯起來,以顯示出這樣的內容
。| ID | 名稱 | avgHighPriceavgLowPrice|
|---|---|---|
| 2 | 180261 | 182132 |
| 195209 | ||
uj5u.com熱心網友回復:
試試這個腳本(沒有任何插件)
function prices(url){
//var url='https://prices.runescape.wiki/api/v1/osrs/1h'
var data = JSON.parse(UrlFetchApp.fetch(url).getContentText() )
var result = [] (結果
result.push(['#', 'avgHighPrice', 'avgLowPrice'])
for (let p in eval('data.data')) {
try{result.push([p,data.data.item(p).avgHighPrice,data.data.item(p).avgLowPrice])}catch(e){ }。
}
回傳結果
}
Object.prototype.item=function(i){return this[i]};
你可以從映射中獲取命名的資訊
你可以從映射中獲取命名的資訊,如下所示
function naming(url){
//var url='https://prices.runescape.wiki/api/v1/osrs/mapping'
var data = JSON.parse(UrlFetchApp.fetch(url).getContentText())
var result = [] (結果
result.push(["id", "name", "examination", "members", "lowalch", "limit", "value", "highalch"] )
json=eval('data')
json.forEach(function(elem){
result.push([elem.id.toString(),elem.name,elem.examination,elem.members,elem.lowalch,elem.limit,elem.value,elem.highalch])
})
回傳結果
}
https://docs.google.com/spreadsheets/d/1HddcbLchYqwnsxKFT2tI4GFytL-LINA-3o9J3fvEPpE/copy
uj5u.com熱心網友回復:
集成的函式
=pricesV2()
https://docs.google.com/spreadsheets/d/1HddcbLchYqwnsxKFT2tI4GFytL-LINA-3o9J3fvEPpE/copy
function pricesV2(){
var url='https://prices.runescape.wiki/api/v1/osrs/mapping'
var data = JSON.parse(UrlFetchApp.fetch(url).getContentText())
let myItems = new Map()
json=eval('data')
json.forEach(function(elem){myItems.set(elem.id.toString(),elem.name)})
var url='https://prices.runescape.wiki/api/v1/osrs/1h'
var data = JSON.parse(UrlFetchApp.fetch(url).getContentText())
var result = [] (結果
result.push(['#', 'name', 'avgHighPrice', 'avgLowPrice'])
for (let p in eval('data.data')) {
try{result.push([p,myItems.get(p),data.data.item(p).avgHighPrice,data.data.item(p).avgLowPrice])}catch(e){ }。
}
回傳結果
}
Object.prototype.item=function(i){return this[i]};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/333274.html
標籤:
