如何将网页爬取的两个列表数据转换为单个字典?
英伟达财务数据配对与中文转换实现
1. 数据收集优化
先修改代码,将比率名称和数值分别收集为结构化列表(替代直接打印元素):
# 收集英文比率名称,自动清理首尾空格 ratio_names = [elem.get_text(strip=True) for elem in soup.find_all('span', attrs={'class': 'float_lang_base_1'})] # 收集比率数值,清理多余空格 ratio_values = [val.get_text(strip=True) for val in soup.find_all('span', attrs={'class': 'float_lang_base_2 text_align_lang_base_2 dirLtr bold'})]
2. 生成英文键值对
通过zip将两个列表配对为字典:
financial_ratios_en = dict(zip(ratio_names, ratio_values))
3. 中文翻译与转换
创建中英文指标映射表,生成中文键值对:
# 财务指标中英文映射 cn_translation = { "Gross margin": "毛利率", "Operating margin": "营业利润率", "Net Profit margin": "净利润率", "Return on Investment": "投资回报率", "Quick Ratio": "速动比率", "Current Ratio": "流动比率", "LT Debt to Equity": "长期债务权益比", "Total Debt to Equity": "总债务权益比", "Cash Flow/Share": "每股现金流", "Revenue/Share": "每股营收", "Operating Cash Flow": "经营现金流" } # 转换为中文键值对 financial_ratios_cn = {cn_translation[key]: value for key, value in financial_ratios_en.items()}
4. 转换为DataFrame
导入pandas将字典转为结构化表格:
import pandas as pd df = pd.DataFrame(list(financial_ratios_cn.items()), columns=["财务指标", "数值"]) print(df)
最终中文键值对效果
- 毛利率 : 60.45%
- 营业利润率: 31.47%
- 净利润率: 26.03%
- 投资回报率: 22.86%
- 速动比率: 2.95
- 流动比率: 3.62
- 长期债务权益比: -
- 总债务权益比: 49.02%
- 每股现金流: -
- 每股营收: -
- 经营现金流: 16.77%
内容的提问来源于stack exchange,提问作者Luc
相关产品推荐
相关产品推荐

