我为Jupyter Notebook创建了一个JavaScript扩展,它将为我绘制一些数据。现在,我已经在扩展程序中对数据进行了硬编码。
我的问题:是否可以访问Notebook中存在的数据对象?
例如,下面是扩展的一些示例代码:
define([
'base/js/namespace'
], function(
Jupyter
) {
function test_second_extension() {
var handler = function () {
console.log(
'This is the current notebook application instance:',
Jupyter.notebook
);
var data = [{"x": 1, "y": 5}, {"x": 2, "y":12}, {"x": 3, "y": 27}];
console.log(data);
};
var action = {
icon: 'fa-comment-o', // a font-awesome class used on buttons, etc
help : 'Print notebook instance',
help_index : 'zz',
handler : handler
};
var prefix = 'test_second_extension';
var action_name = 'show-alert';
var full_action_name = Jupyter.actions.register(action, action_name, prefix); // returns 'my_extension:show-alert'
Jupyter.toolbar.add_buttons_group([full_action_name]);
}
return {
load_ipython_extension: test_second_extension
};
});
这就是我在Python3 Jupyter单元中所拥有的:
import pandas as pd
data = pd.read_json('[{"x": 1, "y": 5}, {"x": 2, "y":12}, {"x": 3, "y": 27}]')
是否有一种方法可以从扩展内部访问在Jupyter单元中创建的数据对象,而不是对其进行硬编码?