Среднее никогда не устанавливается на что-либо, если оно не существует в вашей попытке, кроме блока (который вы действительно должны рассмотреть, исключая точную ошибку)
try:
Middle = #site element for middle name
print(Middle)
except:
print('NA')
Итак, вы пытаетесь установите Middle
на любой элемент, и если элемент не существует, вы просто игнорируете его. В вашем блоке исключений установите Middle
в значение N / a вместо простой печати N / A:
try:
Middle = #site element for middle name
print(Middle)
except:
Middle = "N/A"
print('NA')
Это приводит к тому, что середине фактически назначено что-то, и, следовательно, он не выдаст ошибку, которую вы видите .
Как и в комментариях, вы должны определить середину вне блока try catch, чтобы избежать ошибки в области видимости:
import csv
First = #site element for first name
Last = #site element for last name
Middle = 'N/A' #this will be overwritten if Middle exists in the try except block below, otherwise it will be 'N/A'
try:
Middle = #site element for middle name
print(Middle)
except:
print('NA')
with open ('test.csv', 'a', newline="") as f:
writer = csv.writer(f)
writer.writerow([First,Last,Middle])