google-apps-script - 如何在 google-apps-script 中缓存 2D 数组?
问题描述
我一直在尝试缓存一个谷歌表(“SubmissionsTable”。对于第一次运行时缓存为空,一切正常。但是在从缓存读取的后续运行中,“SubmissionsTable”将只有第一行和所有其他行被删除。我附上了代码以防我误解了一些东西。例如:
运行1:拼接后从文件中读取Submission Table = [[1,2,3],[a,b,c]]
运行 2:从缓存中读取Submission Table = [1,2,3]
编辑:按原样运行此代码应该会重现该问题。如果您有兴趣,这是从中获取数据的工作表:链接
var Cache = CacheService.getScriptCache();
var SubmissionsSheetId = "1ijO1mVZ2NasggFvvmdPGUfZkrdOZVhjkM0CbrPYFlhM";
var SubmissionsTable = Cache.get('submissions');
if (!SubmissionsTable)
{
SubmissionsTable = SpreadsheetApp.openById(SubmissionsSheetId).getSheets()[0].getDataRange().getValues();
SubmissionsTable.splice(0,1);
Cache.put('submissions',SubmissionsTable,20*60);
}
解决方案
这似乎表明并非如此:
function trycache() {
const a =[[1,2,3],[4,5,6],[7,8,9]];
let cs=CacheService.getScriptCache();
cs.put('mykey',JSON.stringify(a));
const b=JSON.parse(cs.get('mykey'));
Logger.log(b[0][2]);
}
Execution log
10:28:23 AM Notice Execution started
10:28:24 AM Info 3.0
10:28:23 AM Notice Execution completed
推荐阅读
- javascript - 我的 svg 贝塞尔曲线的波浪效果这可能吗?
- python - 分区在这个函数中有什么作用?
- java - 一次替换哈希图中的所有相同值
- javascript - 如何在 ReactJS 中使用单个代码库从父应用程序创建子应用程序
- firebase - Firestore 侦听器数据使用情况
- amazon-web-services - 将 Docker 映像上传到 AWS ECR
- arrays - 如何将新值推送到 MongoDB 中具有特定键的数组中?
- c# - 使用 ConfigurationManager.AppSettings 引用时找不到 App.config 键值
- python - 如何在 django 中制作类似 unsplash 的收藏页面
- sql-server - 当用户在查询中按日期列排序时,COALESCE 返回单个值