更新: Woobleのコメントに対する応答として、forの前に "sector = None"を追加すると "None"が返されます。問題は、forループの変数が返されていないということです。UnboundLocalError:割り当て前に参照されるローカル変数 "xyz"
以下は、コードの一見無関係な部分を変更した最近まで、正常に動作していた関数の一部です。
# - >私は最近変更した部分のみがreturn文
に「stockurl」を追加しました私は今UnboundLocalErrorます:割り当て前に参照されたローカル変数「セクタ」は、 "に言及リターン」ライン
for sec in root.xpath(r'''//a[re:match(@href, "http://biz.yahoo.com/p/[0-9]{1}conameu.html")]''',
namespaces={'re': 'http://exslt.org/regular-expressions'}):
sector = sec.text
#print "Sector: " + sector
for ind in root.xpath(r'''//a[re:match(@href, "http://biz.yahoo.com/ic/[0-9]{1,9}.html")]''',
namespaces={'re': 'http://exslt.org/regular-expressions'}):
industry = ind.text
#print "Industry: " + industry
#index --> don't populate here
#followers --> don't populate here
return a, b, c, d, e, f, stockurl, sector, industry
#--> the only part I had changed recently was adding "stockurl" to the function
ここで、これはどこで使用されていますか/これ以前に定義されていますか?もっとコードを投稿できますか?また、セクタは第1回目のfor-loop実行の本体に依存しています(しかし、関係するかもしれません) – Levon
最初の 'for'が実行されない場合(' root.xpath() 'は何も返しません)セクターは定義されません。 forの前に 'sector = None'を置いてみてください。 – geoffspear
の前に "sector = None"を追加すると、単に "None"が返されます。問題は、forループの変数が返されていないということです。 – snakesNbronies