2017-07-03 2 views
-4

リストに追加中に、次のエラーが見つかりましたグローバル名 'label'が定義されていません。このエラーは何を意味しますか?

私はラベルの単語を使用する必要があります。 ただし、次のエラーが表示されます。 どうすればよいですか?

Pythonコード:

asd = 1 
def data(): 
    if 1 == asd: 
    f = open('sar2.txt','r') 

    a=[] 
    for i in f: 
    a.append(i.split()) 

    for c in a: 
    c.pop(0) 
    c.pop(1) 

    a = [[i[0],float(i[1]),float(i[2]),float(i[3]),float(i[4]),float(i[5])] for i in a] 
    b = [{type: 'date', label: 'Season Start Date'},'user','nice','system','iowait','idle'] 
    a.insert(0,b) 
    f.close() 
    return a 

data() 

sar2.txt:

2017/06/29 00:01:01 all 0.24 0.00 0.16 0.27 99.33 
2017/06/29 00:02:01 all 0.13 0.00 0.04 0.13 99.70 
2017/06/29 00:03:01 all 1.05 0.00 0.38 0.26 98.30 
2017/06/29 00:04:01 all 0.44 0.00 0.10 0.15 99.32 
2017/06/29 00:05:01 all 0.25 0.00 0.08 0.22 99.45 

エラー:

b = [{type: 'date', label: 'Season Start Date'},'user','nice','system','iowait','idle'] 
NameError: global name 'label' is not defined 

がどのように私は、エラーを修正できますか?

>>> {asdf: 3} 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'asdf' is not defined 
>>> {'asdf': 3} 
{'asdf': 3} 

辞書を作成する場合、あなたはおそらく、キーの文字列を有することが意図:最小限のエラーを削減

+1

「ラベル」が必要なのかもしれません。 – McGrady

+3

ラベルの代わりに "label"を使用する必要があります。それ以外の場合は、文字列ではなく別の変数の名前として解析されます。 – DiveIntoML

+0

エラーは、定義された 'label'という名前の(ローカルまたはグローバル)**変数**が存在しないことを意味しますが、表示された行でそのラベルへの参照が行われています。 – martineau

答えて

3

私はあなたのコードは次のよう

b = [{'type': 'date', 'label': 'Season Start Date'},'user','nice','system','iowait','idle'] 

を見なければならないあなたは、あなたの辞書のキーとしてtypeを定義し、それはあなたを与えることはありません、あなたは辞書のキーとして文字列ではない変数を使用したいと思いますこれはbuilt-in type() functionなのでエラーですが、辞書のキーのように使用しないでください。

1

関連する問題