如何将Python嵌套字典写入Excel?输出缺少价格数据如何解决
问题原因
你的代码存在2个核心错误导致价格数据缺失:
- 遍历加密货币对应的嵌套字典时,直接遍历字典默认只会拿到键(也就是字符串
GBP),没有拿到对应的价格数值 workbook.close()放在了第一层for循环内部,第一次遍历完BTC的数据就直接关闭了工作簿,后续所有币种的数据都不会被写入。
修复后代码
import xlsxwriter workbook = xlsxwriter.Workbook('myfile.xlsx') worksheet = workbook.add_worksheet() row = 0 col = 0 crypto_price={'BTC': {'GBP': 39552.11}, 'ETH': {'GBP': 2639.38}, 'BNB': {'GBP': 321.8}, 'ADA': {'GBP': 1.665}, 'XRP': {'GBP': 0.7839}, 'SOL': {'GBP': 114.58}, 'DOT': {'GBP': 24.86}, 'DOGE': {'GBP': 0.1776}, 'UNI': {'GBP': 18.72}, 'AVAX': {'GBP': 44.54}} order=sorted(crypto_price.keys()) for key in order: row += 1 worksheet.write(row, col, key) # 直接获取GBP对应的价格写入 price = crypto_price[key]['GBP'] worksheet.write(row, col + 1, price) # 所有数据写入完成后再关闭工作簿 workbook.close()
多币种适配写法(可选)
如果后续你的字典中每个币种对应多个法币价格,可以用以下写法遍历所有键值对:
for key in order: row += 1 worksheet.write(row, col, key) current_col = col + 1 # 同时获取法币类型和对应价格 for currency, price in crypto_price[key].items(): worksheet.write(row, current_col, price) current_col +=1 workbook.close()
内容的提问来源于stack exchange,提问作者androiduser2011
相关产品推荐
相关产品推荐

