无法在Google Apps脚本中解析来自UrlFetchApp的数据

蓝铃

我当前的Cloud Run URL返回一个长字符串,与此处所述的确切格式匹配

当我在Google Apps脚本中运行以下代码时,我得到的日志输出为“ 1”。发生的情况是,整个字符串被放置在data数组的[0] [0]位置,而不是被实际解析。

function myFunction() {
const token = ScriptApp.getIdentityToken();
const options = {
  headers: {'Authorization': 'Bearer ' + token}
}
var responseString = UrlFetchApp.fetch("https://*myproject*.a.run.app", options).getContentText();
var data = Utilities.parseCsv(responseString, '\t');
Logger.log(data.length);
}

我的预期输出是上述链接中所述的2D数组,记录的输出长度为18。

我已通过以下方式确认了我的回复输出:

  1. 记录 responseString
  2. 将输出日志复制到单独的var-> var temp = "copied-output"
  3. 将parseCsv行更改为-> var data = Utilities.parseCsv(temp, '\t')
  4. 保存并运行新代码。然后输出一个成功的2D数组,长度为18。

那么,为什么我的当前代码不起作用?很高兴尝试任何事情,因为我没有主意。

编辑:下面有更多信息。

Python脚本代码

@app.route("/")
def hello_world():
    # Navigate to webpage and get page source
    driver.get("https://www.asxlistedcompanies.com/")
    soup = BeautifulSoup(driver.page_source, 'html.parser')

    # ##############################################################################
    #                   Used by Google Apps Script to create Arrays
    # This creates a two-dimensional array of the format [[a, b, c], [d, e, f]]
    # var csvString = "a\tb\tc\nd\te\tf";
    # var data = Utilities.parseCsv(csvString, '\t');
    # ##############################################################################
    long_string = ""
    limit = 1
    for row in soup.select('tr'):
        if limit == 20:
            break
        else:
            tds = [td.a.get_text(strip=True) if td.a else td.get_text(strip=True) for td in row.select('td')]
            count = 0
            for column in tds:
                if count == 4:
                    linetext = column + r"\n"
                    long_string = long_string+linetext
                else:
                    text = column + r"\t"
                    long_string = long_string+text
                    count = count+1
            limit = limit+1
        
    return long_string

GAS代码已修改:

function myFunction() {
const token = ScriptApp.getIdentityToken();
const options = {
  headers: {'Authorization': 'Bearer ' + token}
}
var responseString = UrlFetchApp.fetch("https://*myfunction*.a.run.app", options).getContentText();
Logger.log("The responseString: " + responseString);

Logger.log("responseString length: " + responseString.length)

Logger.log("responseString type: " + typeof(responseString))
var data = Utilities.parseCsv(responseString, '\t');
Logger.log(data.length);
}

GAS日志/输出要求:

6:17:11 AM  Notice  Execution started
6:17:22 AM  Info    The responseString: 14D\t1414 Degrees Ltd\tIndustrials\t21,133,400\t0.001\n1ST\t1ST Group Ltd\tHealth Care\t12,738,500\t0.001\n3PL\t3P Learning Ltd\tConsumer Discretionary\t104,613,000\t0.005\n4DS\t4DS Memory Ltd\tInformation Technology\t58,091,300\t0.003\n5GN\t5G Networks Ltd\t\t82,746,600\t0.004\n88E\t88 Energy Ltd\tEnergy\t42,657,800\t0.002\n8CO\t8COMMON Ltd\tInformation Technology\t11,157,900\t0.001\n8IH\t8I Holdings Ltd\tFinancials\t35,814,200\t0.002\n8EC\t8IP Emerging Companies Ltd\t\t3,199,410\t0\n8VI\t8VIC Holdings Ltd\tConsumer Discretionary\t13,073,200\t0.001\n9SP\t9 Spokes International Ltd\tInformation Technology\t21,880,100\t0.001\nACB\tA-Cap Energy Ltd\tEnergy\t7,846,960\t0\nA2B\tA2B Australia Ltd\tIndustrials\t95,140,200\t0.005\nABP\tAbacus Property Group\tReal Estate\t1,679,500,000\t0.082\nABL\tAbilene Oil and Gas Ltd\tEnergy\t397,614\t0\nAEG\tAbsolute Equity Performance Fund Ltd\t\t107,297,000\t0.005\nABT\tAbundant Produce Ltd\tConsumer Staples\t1,355,970\t0\nACS\tAccent Resources NL\tMaterials\t905,001\t0\n
6:17:22 AM  Info    responseString length: 1020
6:17:22 AM  Info    responseString type: string
6:17:22 AM  Info    1.0
6:17:22 AM  Notice  Execution completed
大师

问题:

使用r''原始字符串标志分别使\n\t,文字\n/,t而不是换行或制表符。这解释了为什么您能够将“显示的”日志复制到变量并成功执行。

解:

不要使用r标志。

片段:

    linetext = column + "\n" #no flag
    long_string = long_string+linetext
else:
    text = column + "\t" #no flag

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法解析符号“ google”

来自分类Dev

使用Google Apps脚本解析XML

来自分类Dev

Google Apps脚本:UrlFetchApp发布文件

来自分类Dev

Google解析的revoketoken无法撤销?

来自分类Dev

无法使jQuery警报在Google Apps脚本中工作

来自分类Dev

URL存在时,Google Apps脚本UrlFetchApp返回404

来自分类Dev

HTML文件中包含的脚本无法在Google Apps脚本HTMLService中运行

来自分类Dev

方法“ moveActiveSheet”在Google Apps脚本(JavaScript)中无法正常工作

来自分类Dev

尝试...在Google Apps脚本中无法按预期方式捕获

来自分类Dev

使用基本身份验证的Google Apps脚本中的UrlFetchApp.fetch出现意外错误

来自分类Dev

如何创建Google云端硬盘中的图像文件,然后将其插入到外部API的Google Apps脚本UrlFetchApp.fetch调用中?

来自分类Dev

Google Apps脚本无法识别我的文档中的表格

来自分类Dev

Google Apps脚本-无法从JSON数据查询属性

来自分类Dev

无法解析Google Apps脚本中的所有JSON值(后跟逗号)

来自分类Dev

从Google Apps脚本中的API解析JSON响应

来自分类Dev

Google Apps脚本无法更改项目属性中的时区

来自分类Dev

Google App脚本-无法使用API中的数据设置Value

来自分类Dev

Google Apps Script / URLFetchApp并使用返回的数据

来自分类Dev

无法在Google Apps脚本中获取Sheet ID

来自分类Dev

无法使用Google Apps脚本解析SOAP XML响应

来自分类Dev

Google Apps脚本。无法设置范围内的值,因为数据中的行数与范围内的行数不匹配

来自分类Dev

Google App脚本-UrlFetchApp.Fetch无法发布

来自分类Dev

由于包含太多数据,因此无法处理该操作。Google Apps脚本

来自分类Dev

Google Apps脚本:jQuery无法正常工作

来自分类Dev

Google Apps脚本中的createFile()无法正常运行

来自分类Dev

使用Google Apps脚本处理来自数组中输入元素的多个文件

来自分类Dev

无法在Google Apps脚本中使用fetchURL()

来自分类Dev

使用Google Apps脚本解析表单提交

来自分类Dev

google apps脚本json解析错误

Related 相关文章

  1. 1

    无法解析符号“ google”

  2. 2

    使用Google Apps脚本解析XML

  3. 3

    Google Apps脚本:UrlFetchApp发布文件

  4. 4

    Google解析的revoketoken无法撤销?

  5. 5

    无法使jQuery警报在Google Apps脚本中工作

  6. 6

    URL存在时,Google Apps脚本UrlFetchApp返回404

  7. 7

    HTML文件中包含的脚本无法在Google Apps脚本HTMLService中运行

  8. 8

    方法“ moveActiveSheet”在Google Apps脚本(JavaScript)中无法正常工作

  9. 9

    尝试...在Google Apps脚本中无法按预期方式捕获

  10. 10

    使用基本身份验证的Google Apps脚本中的UrlFetchApp.fetch出现意外错误

  11. 11

    如何创建Google云端硬盘中的图像文件,然后将其插入到外部API的Google Apps脚本UrlFetchApp.fetch调用中?

  12. 12

    Google Apps脚本无法识别我的文档中的表格

  13. 13

    Google Apps脚本-无法从JSON数据查询属性

  14. 14

    无法解析Google Apps脚本中的所有JSON值(后跟逗号)

  15. 15

    从Google Apps脚本中的API解析JSON响应

  16. 16

    Google Apps脚本无法更改项目属性中的时区

  17. 17

    Google App脚本-无法使用API中的数据设置Value

  18. 18

    Google Apps Script / URLFetchApp并使用返回的数据

  19. 19

    无法在Google Apps脚本中获取Sheet ID

  20. 20

    无法使用Google Apps脚本解析SOAP XML响应

  21. 21

    Google Apps脚本。无法设置范围内的值,因为数据中的行数与范围内的行数不匹配

  22. 22

    Google App脚本-UrlFetchApp.Fetch无法发布

  23. 23

    由于包含太多数据,因此无法处理该操作。Google Apps脚本

  24. 24

    Google Apps脚本:jQuery无法正常工作

  25. 25

    Google Apps脚本中的createFile()无法正常运行

  26. 26

    使用Google Apps脚本处理来自数组中输入元素的多个文件

  27. 27

    无法在Google Apps脚本中使用fetchURL()

  28. 28

    使用Google Apps脚本解析表单提交

  29. 29

    google apps脚本json解析错误

热门标签

归档