【问题标题】:Node.Js, JSON Parse Error, Unexpected End of InputNode.Js,JSON 解析错误,输入意外结束
【发布时间】:2014-07-18 17:27:29
【问题描述】:

问题解决了!!


所以我一直在关注这个找到here 的迷你指南。

为了方便访问,我已插入下面的代码。但是,当我运行代码时(在为 google 输入正确的详细信息后),最后会出现错误。

Logging into Google...
Logged into Google
Searching for Worksheet 'S'...

JSON Parse Error: SyntaxError: Unexpected end of input

知道我做错了什么吗?我需要做一些改变吗?同样出于学习的兴趣,如果您也可以解释一下您是如何解决我的问题的,而不仅仅是给我解决方案,以便我以后可以自己解决类似的问题。

谢谢

英国

/**
* Fetch data from the web and save it into a Google Sheet document
*
* Requirements:
  1. NodeJS
  2. npm install request
  3. npm install cheerio
  4. npm install edit-google-spreadsheet

* Author: Ido Green | plus.google.com/+Greenido
* Date: 15 Aug 2013
*/

var request     = require('request');
var cheerio     = require('cheerio');
var Spreadsheet = require('edit-google-spreadsheet');

// Some parameters 
// TODO: move from the global scope
var ticker  = "LVS";
var yUrl    = "http://finance.yahoo.com/q/ks?s=" + ticker;
var financeDetails = new Array();
var keyStr         = new Array();


// Upload our data to G-Sheet
function sheetReady(err, spreadsheet) {
    if (err) throw err;
    spreadsheet.add({ 1: { 1: "Attribute" } });
    spreadsheet.add({ 1: { 2: "Value" } });

    spreadsheet.add({ 
      2: {
        1: keyStr
      }
    });
    spreadsheet.add({ 
      2: {
        2: financeDetails
      }
    });

    spreadsheet.send(function(err) {
      if(err) throw err;
      console.log("Updated " + financeDetails.length + " Items with data");
    });
  }

//
// The main call to fetch the data, parse it and work on it.  
//
request(yUrl, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    var $ = cheerio.load(body);

    // the keys - We get them from a certain class attribute
    var td = $('.yfnc_tablehead1');
    $(td).each(function(j, val) {
      keyStr[j] = $(val).text();
    });

    // the values
    // TODO: normalize them 
    var tData = $('.yfnc_tabledata1');
    $(tData).each(function(j, val) {
      financeDetails[j] = $(val).text();
    });

    // Let's do something with the data we have
    for (var i=0; i < financeDetails.length; i++) {
      console.log (i + ") " + keyStr[i] + " " + financeDetails[i]);
    }

    // upload our data to Google sheet
    // yFinanceDataPerComapy
    Spreadsheet.create({
      debug: true,
      username: 'TODO-fill',
      password: 'TODO-fill',
      debug: true,
      spreadsheetName: 'TODO-yourSheetName',
      worksheetName: 'TODO-Sheet1orAbetterName',
      callback: sheetReady
    });
  }

}); // -- end of request --

【问题讨论】:

    标签: json node.js


    【解决方案1】:

    这是报告 here 的 edit-google-spreadsheet 模块的错误。尝试检索私人电子表格时会引发错误。您可以采取一些选择。

    • 公开电子表格。
    • 尝试使用fixed pull request。看起来仍有问题需要解决。
    • 使用工作表 ID 而不是工作表名称。这是一个更困难的过程:
      1. 首先在 Google 云端硬盘中打开您的电子表格
      2. 在 url 中找到电子表格 ID。例子:
        https://docs.google.com/spreadsheets/d/SPREADSHEET_ID_HERE/edit?usp=drive_web
      3. 通过转到此 url 列出来源:
        查看来源:https://spreadsheets.google.com/feeds/worksheets/SPREADSHEET_ID_HERE/private/full
      4. 从响应中找到条目(以下示例中的 od6):
    <entry>
        <id>https://spreadsheets.google.com/feeds/worksheets/SPREADSHEET_ID_HERE/private/full/od6</id>
        ...
        <title type='text'>Sheet1</title>
        ...
    </entry>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-16
      • 1970-01-01
      • 2021-01-04
      • 2021-06-04
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多