首页 > 解决方案 > Jupyter Notebook 中的变量仅在单元格内有效

问题描述

我有一个变量,我在 jupyter 的一个单元格中使用,但是当我在下一个单元格中调用它时,它说找不到该变量

在从子文件读取数据之前,我尝试创建变量的实例。我尝试创建另一个与第一个相同的变量,并在下一个单元格中使用该变量。

if os.path.isfile("cointegration.json"):
    with open("cointegration.json", "r") as f:
        cointegration_mv = json.load(f)
else:
    cointegration_mv = {}
    for i in range(0, len(usd_pairs)):
        pair_i = usd_pairs[i]
        print(pair_i)
        for j in range(0, i):
            pair_j = usd_pairs[j]
            print("\t+",pair_j)
            if pair_i != pair_j:
                code = pair_i + '_' + pair_j
                print("\t\t=",code)
                cointegration_mv[code] =  get_cointegration(pair_i, pair_j)

    json = json.dumps(cointegration_mv)
    f = open("cointegration.json","w")
    f.write(json)
    f.close()

print(cointegration_mv.keys())

#This does print the keys

#The next cell
print(cointegration_mv.keys())

错误是:

NameError                                 Traceback (most recent call last)
<ipython-input-15-7abb854e8cc9> in <module>
----> 1 print(cointegration_mv.keys())

NameError: name 'cointegration_mv' is not defined

即使我在读取数据之前创建了变量的实例(所以我希望键只是空的),并且当我尝试复制变量并传递副本时,也会发生这种情况。

标签: pythonjupyter-notebook

解决方案


确保你已经运行了所有的单元格。

例如,如果在第一个单元格中定义了变量 x,您还必须运行该单元格。只有这样,变量才会被定义,准备好在所有单元格中使用。否则,它根本就不存在。


推荐阅读