用于使用自定义 JavaScript 函数丰富数据的Datasette 数据富化功能
将此插件安装在与 Datasette 相同的环境中。
datasette install datasette-enrichments-quickjs
此富化插件允许您从表中选择行,并指定一个自定义 JavaScript 函数来为每行生成一个值,将该值存储在指定的列中,如果该列不存在则创建它。
代码在一个 QuickJS 沙箱中运行,每个函数执行的时间限制为 0.1 秒,内存限制为 4MB。
富化 JavaScript 函数看起来像这样
function enrich(row) {
return row["title"] + "!";
}
函数的返回值将存储在您选择的输出列中。
除了选择一个输出列,您还可以让您的函数返回一个带有键值对的对象。
此示例选取一个名为 point
的列(其值类似于 37.7749,-122.4194
),并将其拆分为 latitude
和 longitude
两列
function enrich(row) {
const bits = row.point.split(",");
return {
"latitude": parseFloat(bits[0]),
"longitude": parseFloat(bits[1])
}
}
然后,此富化插件将为该函数返回的对象中的每个键在表中创建新列。
要在本地设置此插件,首先拉取代码。然后创建一个新的虚拟环境
cd datasette-enrichments-quickjs
python3 -m venv venv
source venv/bin/activate
现在安装依赖项和测试依赖项
pip install -e '.[test]'
运行测试
pytest