我正面臨KeyError
我無法解釋或理解。 我有一個筆記本,我在其中一個單元定義一個變量PREFIX
:格式化當地人時出現KeyError
PREFIX = "/home/mavax/Documents/info/notebook/log_study"
這簡直是包含日誌的文件夾的路徑,所以在使用筆記本的人只需要更改路徑,如果他們想執行下面的代碼。
然後,後來(相當一堆之下的細胞),我使用它,沒有任何問題:
for basename in ["log_converted_full.txt", "log_converted_trimmed.txt"]:
entries = load_log_for_insertion("%(PREFIX)s/datasets/logs/%(basename)s" % locals())
pprint(entries)
然後我得到我所期望的輸出,這意味着文件被發現(很長)輸出正在打印日誌。
我有一些說明我對這個問題的實現結構更多的細胞,並在時機成熟時再執行同一段代碼,我得到了KeyError
:
代碼帶來錯誤:
def demo_synthetic_dig_dag(data_size):
for basename in ["alert_converted_trimmed.txt"]:
###
entries = load_log_for_insertion("%(PREFIX)s/datasets/logs/%(basename)s" % locals())[:data_size]
g = AugmentedDigDag()
g.build(entries)
html(
"""
<table>
<tr><td>%s</td></tr>
</table>
""" % (
synthetic_graph_to_html(g, 2, 0.03)
)
)
,並且在下一單元:
demo_synthetic_dig_dag(200)
Jupyter輸出:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-179-7c2a79d0afd6> in <module>()
----> 1 demo_synthetic_dig_dag_armen(200)
<ipython-input-178-d17f57de3c01> in demo_synthetic_dig_dag(data_size)
18 for basename in ["log_converted_trimmed.txt"]:
19 ###
---> 20 entries = load_log_for_insertion("%(PREFIX)s/datasets/logs/%(basename)s" % locals())[:data_size]
21 g = AugmentedDigDag()
22 g.build(entries)
KeyError: 'PREFIX'
我敢肯定,這個錯誤是相當簡單和愚蠢的,但是,如果有人能夠睜開我的眼睛,我會非常感激!
工作正常,非常感謝!我對Python非常陌生,並且不知道'.format'方法......是今天學習它的好機會! –
太好了。一般來說,您應該閱讀方法字符串提供的['.format'](https://docs.python.org/3.6/library/string.html#format-string-syntax)方法,它通常是首選的方式格式化字符串在Python 3中。('f'字符串是另一種新的方式,但不需要再看看) –
好吧,我會按照建議:) –