如何使用Python将存储股票数据的TXT文件转换为结构化表格
如何使用Python将存储股票数据的TXT文件转换为结构化表格
嘿,这事儿不难,用Python结合几个实用工具就能快速把那些零散的字典格式股票数据转成规整的表格。我给你一步步拆解,附上可直接运行的代码:
第一步:准备依赖
咱们需要用到pandas来处理表格,还有Python内置的ast模块来安全解析字典字符串(别用eval,不安全!)。如果还没装pandas,先跑这个命令:
pip install pandas
要是你的pandas版本比较旧(低于1.0.0),to_markdown功能可能用不了,那可以额外装个tabulate库:
pip install tabulate
第二步:编写代码实现转换
下面是完整的代码,我会在每一步加上注释,你替换成自己的文件路径就能用:
import ast import pandas as pd # 如果用tabulate的话,加上下面这行 # from tabulate import tabulate # 替换成你的股票数据文件路径 file_path = "stock_data.txt" # 读取文件内容 with open(file_path, "r", encoding="utf-8") as f: raw_content = f.read().strip() # 提取每个股票的字典字符串 # 这里假设每个股票字典是用`}{`分隔的,要是你的文件是换行分隔,就改成split('\n') stock_entries = raw_content.split('}{') # 给每个条目补全首尾的{},确保格式正确 stock_entries = [ f"{{{entry}}}" if not entry.startswith('{') else entry for entry in stock_entries ] stock_entries = [ f"{entry}}}" if not entry.endswith('}') else entry for entry in stock_entries ] # 把字符串转成Python字典,收集到列表里 stock_list = [] for entry in stock_entries: try: # 用ast.literal_eval安全解析,避免恶意代码 stock_dict = ast.literal_eval(entry) stock_list.append(stock_dict) except Exception as e: print(f"解析这条数据时出错了:{entry}") print(f"错误原因:{str(e)}") # 转换成DataFrame,自动生成结构化表格 df = pd.DataFrame(stock_list) # 输出Markdown格式的表格 # 方法1:用pandas自带的to_markdown(需要pandas1.0+) print(df.to_markdown(index=False)) # 方法2:如果用tabulate,就用下面这行 # print(tabulate(df, headers="keys", tablefmt="markdown", showindex=False)) # 可选:把表格保存成Markdown文件 with open("stock_table.md", "w", encoding="utf-8") as f: f.write(df.to_markdown(index=False)) # 可选:保存成CSV文件,方便后续用Excel等工具打开 df.to_csv("stock_data.csv", index=False, encoding="utf-8-sig")
一些注意事项
- 如果你的文件里股票字典之间的分隔符不是
}{,比如是换行或者逗号,记得调整split里的参数; - 要是遇到解析错误,代码会打印出有问题的条目,你可以手动检查格式是否有问题;
- 输出的Markdown表格会包含所有字段,和你想要的示例格式完全一致,所有列都会自动对齐。
这样运行完之后,你就能得到一个清晰的Markdown表格,或者保存成文件随时查看啦!
备注:内容来源于stack exchange,提问作者Sokkary




