python - 级联下拉菜单显示字典/数组 - Python(Jupyter Notebook)
问题描述
我正在尝试在 Jupyter Notebook 上创建一系列下拉菜单。
前几个下拉列表工作正常,但在最后一个下拉列表开始变得不稳定,输出被读取为字符串而不是字典
代码如下:
#Initialise GUI
from ipywidgets import interact,Dropdown
import ipywidgets as widgets
#Initialise Dictionaries
NAICSd = {"21-Mining,Quarrying,and oil and gas extraction(8)":0.08,
"11-Agriculture,forestry,fishing and hunting(9)":0.09,
"55-Management of companies and enterprises(10)":0.08,
"62-Healthcare and social assistance(10)":0.1,
"22-Utilities(14)":0.14,
"92-Public Administration(15)":0.15,
"54-Professional,scientific and technical services(19)":0.19,
"42-Wholesale trade(19)":0.19,
"31-Manufacturing(19)":0.19,
"32-Manufacturing(16)":0.16,
"33-Manufacturing(14)":0.14,
"81-Other Sevices Exept Public Administration(20)":0.2,
"71-Arts,Entertainment and Recreation(21)":0.21,
"72-Accommodation and Food Services(22)":0.22,
"44-Retail Trade(22)":0.22,
"45-Retail Trade(23)":0.23,
"23-Construction(23)":0.23,
"56-Administrative/Support & Waste Management/Remediation Service(24)":0.24,
"61-Educational Services(24)":0.24,
"51-Information (25)":0.25,
"48-Transportation and warehousing(27)":0.27,
"49-Transportation and warehousing(23)":0.23,
"52-Finance and Insurance(28)":0.28,
"53-Real Estate and rental and leasing(29)":0.29}
Stated = {"Undefined(28)":0.28,
"Alaska(10)":0.1,
"Alabama(18)":0.18,
"Arkansas(18)":0.18,
"Arizona(20)":0.2,
"California(20)":0.2,
"Colorado(18)":0.18,
"Connecticut(13)":0.13,
"D.C.(8)":0.08,
"Delaware(18)":0.18,
"Florida(28)":0.28,
"Georgia(27)":0.27,
"Hawaii(16)":0.16,
"Iowa(13)":0.13,
"Idaho(15)":0.15,
"Illonois(23)":0.23,
"Indiana(18)":0.18,
"Kansas(13)":0.13,
"Kentucy(20)":0.20,
"Louisiana(18)":0.18,
"Massachusetts(15)":0.15,
"Maryland(20)":0.20,
"Maine(9)":0.09,
"Michigan(23)":0.23,
"Minnesota(13)":0.13,
"Missouri(15)":0.15,
"Missisipi(15)":0.15,
"Montana(8)":0.08,
"North Carolina(20)":0.2,
"North Dakota(8)":0.08,
"Nebraska(15)":0.15,
"New Hampshire(10)":0.1,
"New Jersey(20)":0.2,
"New Mexico(10)":0.1,
"Nevada(23)":0.23,
"New York(20)":0.2,
"Ohio(18)":0.18,
"Oklahoma(13)":0.13,
"Oregon(17)":0.17,
"Pennsylvania(15)":0.15,
"Rhode Island(8)":0.08,
"South Carolina(20)":0.2,
"South Dakota(8)":0.08,
"Tennesee(23)":0.23,
"Texas(20)":0.2,
"Utah(18)":0.18,
"Virginia(19)":0.19,
"Vermont(8)":0.08,
"Washington(13)":0.13,
"Wisconsin(15)":0.15,
"West Virginia(15)":0.15,
"Wyoming(8)":0.18
}
Businessd = {"New Business <2 years(18.98)":0.1898,
"Normal Business >= 2 years (17.36)":0.1736}
BackedRealEstated = {"Yes(1.64)":0.0164,
"No(21.16)":0.2116}
IsRecessiond ={"Yes(32.21)":0.3221,
"No(16.63)":0.1663}
SBARatiod = {"More than 50%(25)":0.25,
"50% or less(40)":0.4}
NAICSList = Dropdown(options = NAICSd)
StateList = Dropdown(options = Stated)
BusinessList = Dropdown(options = Businessd)
BackedRealEstateList = Dropdown(options = BackedRealEstated)
IsRecessionList = Dropdown(options = IsRecessiond)
SBARatioList = Dropdown(option = SBARatiod)
@interact(Sector = NAICSList, US_State=StateList, New_Business=BusinessList, Real_Estate_Backed=BackedRealEstateList,
Recession = IsRecessionList, Guarantee_Ratio = SBARatioList)
def print_dropdown(Sector, US_State, New_Business, Real_Estate_Backed, Recession, Guarantee_Ratio):
NAICSList.options = NAICSd
StateList.options = Stated
BusinessList = Businessd
BackedRealEstateList = BackedRealEstated
IsRecessionList = IsRecessiond
Guarantee_Ratio = SBARatiod
print(Sector, US_State, New_Business, Real_Estate_Backed, Recession, Guarantee_Ratio)
Sector、US_State、New_Business、Real_Estate_Backed 和 Recession 都返回一个浮点数,这就是我想要的。但是 Guarantee_Ratio 返回 '{'超过 50%(25)': 0.25, '50% 或更少(40)': 0.4}'
解决方案
我看到了我的问题。我将 Guarantee_Ratio 变量与列表混淆了
def print_dropdown(Sector, US_State, New_Business, Real_Estate_Backed, Recession, Guarantee_Ratio):
NAICSList = NAICSd
StateList = Stated
BusinessList = Businessd
BackedRealEstateList = BackedRealEstated
IsRecessionList = IsRecessiond
SBARatioList = SBARatiod
print(Sector, US_State, New_Business, Real_Estate_Backed, Recession, Guarantee_Ratio)]
推荐阅读
- html - 如何在中心对齐图像并在悬停时覆盖文本?
- reactjs - 当我导航到 React 中的新页面时,如何强制卸载组件?
- kubernetes - 两个集群但只有一个节点池?
- android - 你可以在 Robolectric 中使用 android.os.Build.getSerial() 吗?
- keras - 图像数据生成器:如何测试并行性?
- gulp - 当我运行“gulp build”时,我得到了他的错误?
- php - 为什么表单提交发送获取请求而不是发布请求?
- azure-ad-b2c - Azure AD B2C:无 SLA
- angular - 在Angular 5中测试primeng手风琴时未触发onOpen函数
- postgresql - 如何在我的计算机上本地设置 Postgres SQL 数据库?