1 | initial version |
The choice that ipython made when they created the ipython notebook format .ipynb (the notebook was later renamed Jupyter, but the notebook extension .ipynb was kept) is to store the notebook as a json format file. For example you may try to read a jupyter notebook as a json file as follows:
sage: import json
sage: with open('Untitled.ipynb','r') as f:
....: d = json.load(f)
You obtain a Python dictionnary to work with:
sage: type(d)
<class 'dict'>
sage: d.keys()
dict_keys(['cells', 'metadata', 'nbformat', 'nbformat_minor'])
So, to answer the question, a Jupyter notebook is in fact an "external data file" and it is the "best" in the sense that it can store any data or objects or images or whatever created in SageMath. Of course, it not practical or optimal if you want to store more specific data, but then your question also needs to be more specific.
2 | No.2 Revision |
The choice that ipython made when they created the ipython notebook format .ipynb (the notebook was later renamed Jupyter, but the notebook extension .ipynb was kept) is to store the notebook as a json format file. For example you may try to read a jupyter notebook as a json file as follows:
sage: import json
sage: with open('Untitled.ipynb','r') as f:
....: d = json.load(f)
You obtain a Python dictionnary to work with:
sage: type(d)
<class 'dict'>
sage: d.keys()
dict_keys(['cells', 'metadata', 'nbformat', 'nbformat_minor'])
So, to answer the question, a Jupyter notebook is in fact an "external data file" and it is the "best" in the sense that it can store any data or objects or images or whatever created in SageMath. Of course, it is not practical or optimal if you want to store more specific data, but then your question also needs to be more specific.
3 | No.3 Revision |
The choice that ipython made when they created the ipython notebook format .ipynb (the notebook was later renamed Jupyter, but the notebook extension .ipynb was kept) is to store the notebook as a json format file. For example you one may try to read a jupyter notebook as a json file as follows:
sage: import json
sage: with open('Untitled.ipynb','r') as f:
....: d = json.load(f)
You obtain One obtains a Python dictionnary to work with:
sage: type(d)
<class 'dict'>
sage: d.keys()
dict_keys(['cells', 'metadata', 'nbformat', 'nbformat_minor'])
So, to answer the question, a Jupyter notebook is in fact an "external data file" and it is the "best" in the sense that it can store any data or objects or images or whatever created in SageMath. Of course, it is not practical or optimal if you want one wants to store more specific data, but then your the question also needs to be more specific.