进入了if shi in transPrivinceName.keys():这个分支,当然就没有val这个变量,下面的text.append(val)就报错。你的代码逻辑还要修改 本帖最后由 gdmao002 于 2021-8-22 12:36 编辑
for i in f:
threeCode = ''
text = i.replace('\n', '').split(',')
textCode = text
year = text
shi = text
dw = text
if shi in transPrivinceName.keys():
threeCode = transPrivinceName
else:
for key, val in transPrivinceName.items():
if key in dw:
threeCode = val
break###一旦找到就停止本次循环
else:
threeCode = ''
if threeCode != '':
text.append(val)
f1.write(','.join(text) + '\n')###再次补充上
else:
text.append(textCode[:2])
f1.write(','.join(text) + '\n')###这个是直接写入,手工验证等真的需要的时候再找出来
f2.write(','.join(text) + '\n')
这是你错误内的代码
然后我给你说下你为何错误
你可以想下如果你for i in f: 【第二行】的时候 第一个 判断的时候走的是【第九行】if shi in transPrivinceName.keys():
然后执行了这个 【第十八行】if threeCode != '':那么【第十九行】里面的变量var哪里来?它又是指向哪里?所以你的错误就是在变量未定义之前 给他使用了。导致了报错,明白了吗
解决办法 前面定义个var变量的赋值 或者 整个循环逻辑修整下。毕竟你的代码只有你懂要做什么。我们最多只是提示下你要怎么操作,不可能面面俱到帮你修改到位,毕竟代码是你写的。我也通过你错误判断你这至少都要将近1000行代码了吧?那么别人更不可能帮你修改了,最多就提示你要怎么做
页:
[1]