我想将函数结果放入另一个函数(cert_register_excel_sheet_populator())中的字典(columns_categories_dict)中,如下所示:
def value(category, row):
return spreadsheet_defaultdict[str(category)][row - 1].strip()
def cert_register_excel_sheet_populator():
columns_categories_dict = {
'A':value("Policy Number", row),
'C':" ".join(value("Policyholder", row).split(", ")[::-1]),
'D':value("Vehicle Reg. Number", row),
'E':custom_strftime('{S} %B, %Y', renewal_date) + ' - ' + custom_strftime('{S} %B, %Y', expiry_date),
'F':datetime.datetime.now().strftime('%d/%m/%Y')
}
但是我收到了这个错误:
Traceback (most recent call last):
File "C:\Users\Millar\Desktop\Python Sandbox\Prem Calc to Motor Cert Populator\Sagicor Tickertapes, Motor Certs.py", line 387, in <module>
cert_register_excel_sheet_populator()
File "C:\Users\Millar\Desktop\Python Sandbox\Prem Calc to Motor Cert Populator\Sagicor Tickertapes, Motor Certs.py", line 320, in cert_register_excel_sheet_populator
'A':value("Policy Number", row),
UnboundLocalError: local variable 'value' referenced before assignment
我尝试将值设为全局值,然后将原始值函数转换为字符串。我可能会找到一个解决方法并使用循环来填充我的字典,但是有更优雅的解决方案吗?
更新:我创建了以下简单代码来演示我的问题。代码有效。
def first_function():
return print("I am working")
def second_function():
columns_categories_dict = {
'A':first_function(),
'B':'wow',
'C':print("third value")
}
second_function()
打印出来:
========= RESTART: Desktop/function conflict test.py =========
I am working
third value
我搜索了我的代码,看看我是否将值用作变量,而且我没有......