【发布时间】:2018-12-27 16:24:47
【问题描述】:
我在全局脚本中将 policydict 定义为 policydict = {},当我从主脚本运行更新策略时,我得到了未定义的回溯 policydict。
import mysql.connector
import datetime
import xlrd
import re
import os
import csv
from Global import guardpointdict
def updatepolicies():
global policydict
#read in csv from vormetric
with open('policies.csv') as polcsvfile:
policies = csv.DictReader(polcsvfile)
for row in policies:
#print(row['Report Id'], row['Status Id'], row['Host Name'], row["OS Type"], row['Host Description'], row['License Type'],
#row['One-Way Enabled'], row['FS Agent Registration Status'], row['FS Agent Version'], row['Host Name'], row['Last Policy Update'],
#row['Guard Point Id'], row['Guard Path'], row['Policy Id'], row['Policy Name'], row['Guard Enabled'],
#row['Guard Point Status'], row['Error Reason'])
#create database connection
conn = mysql.connector.connect(host='xxx', user='xxx',
password='xxx', db='mydb')
cursor = conn.cursor()
#Create parameters for stored procedure
policyparams = (row['Policy Name'], row['Policy Description'], 0)
#call stored procedure
returnvalue = cursor.callproc('update_policies', policyparams)
# create dictionary used for keypair in guardpoints table
policydict[row['Policy Name']] = returnvalue[2]
conn.commit()
conn.close()
Traceback(最近一次调用最后一次): 文件“C:/Users/n0256468/PycharmProjects/scorecard/Main.py”,第 16 行,在 更新策略() 文件“C:\Users\n0256468\PycharmProjects\scorecard\policies.py”,第 38 行,在 updatepolicies policydict[row['Policy Name']] = returnvalue[2] NameError: name 'policydict' 未定义
进程以退出代码 1 结束
【问题讨论】:
-
global不是这样工作的。
标签: python python-3.x