[英]how can I loop through a unciode json string in javascript?
我得到了 CBOE 选项 api 返回的以下字符串:
{u'inputs': {u'stock_price_max': 50.0, u'high_low_stock_max': None, u'time_frame': u'middle', u'hv30_max': None, u'high_low_stock_min': None, u'symbols': None, u'hv30_min': None, u'low_strike': 3.0, u'high_strike': 4.0, u'industry_codes': None, u'spread_ask_price_max': None, u'stock_price_min': 10.0}, u'output': [{u'stock_price': 43.2, u'stock_hi_lo_percent': 72.9651, u'symbol': u'EWZ', u'industry_code': 55501010, u'max_gain': 0.52, u'high_strike_otm_percent': 0.463, u'low_strike_otm_percent': 2.7778, u'spread_ask': 0.48, u'spread': u'43/42 Put', u'expiry': u'2019-04-18', u'max_gain_to_spread_ask_percent': 108.3333, u'hv30': 27.3836}, {u'stock_price': 41.37, u'stock_hi_lo_percent': 21.7957, u'symbol': u'FXI', u'industry_code': 55501010, u'max_gain': 0.26, u'high_strike_otm_percent': 0.8944, u'low_strike_otm_percent': 2.103, u'spread_ask': 0.24, u'spread': u'41/40.5 Put', u'expiry': u'2019-05-17', u'max_gain_to_spread_ask_percent': 108.3333, u'hv30': 20.2925}
我想遍历它并将元素放入 Google 电子表格中的单元格中。 我有这个代码:
function myFunction() {
var response = UrlFetchApp.fetch(endpoint);
var data = response.getContentText();
sheet.getRange("A8").setValue(data);
}
这会将整个字符串放入单元格 A8。
我试图通过字符串循环
for (i = 0; i < jsonlen; i++) {
sheet.getRange("A:A").setValaue(data['output']['symbol']);
}
这将返回“未定义”。 所以问题是:1)如何从字符串的“输出”部分中提取我需要的元素 2)将符号放入 A3、A4 等,然后将 stock_price 放入 B3、B4 等 3)如何识别字符串的长度为了使循环正常工作,直到字符串完全循环?
非常感谢!
symbol
和stock_price
output
属性的值,并将它们分别放入活动电子表格的“A”和“B”列。如果我的理解是正确的,这个答案怎么样? 请将此视为几种可能的答案之一。
output
的属性有一个数组。 并且symbol
和stock_price
在数组中。
function myFunction() {
var response = UrlFetchApp.fetch(endpoint);
var data = JSON.parse(response.getContentText());
var values = data.output.map(function(e) {return [e.symbol, e.stock_price]});
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(3, 1, values.length, values[0].length).setValues(values);
}
data
实际上是{u'inputs': {###}, u'outputs': [###]}
的字符串值,它具有 python 2 的 unicode 文字,则需要替换u
. 所以在这种情况下,请将data = JSON.parse(data.replace(/u\\'|\\'/g, "\\"").replace(/None/g, "null"));
放在var values = data.output.map(function(e) {return [e.symbol, e.stock_price]});
之前var values = data.output.map(function(e) {return [e.symbol, e.stock_price]});
。请注意这一点。如果我误解了您的问题并且这不是您想要的结果,我深表歉意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.