Python字符串格式列表转实体列表方法及更优存储读取方案
字符串转列表实现方案
你可以直接使用Python标准库的ast.literal_eval完成转换,该方法仅解析Python字面量,不会执行任意代码,安全性远高于eval,完全适配str(list)生成的字符串格式:
import ast # 读取存储了str(list)的明文文件 with open("your_file_path.txt", "r", encoding="utf-8") as f: list_str = f.read().strip() # 转换为实际列表类型 target_list = ast.literal_eval(list_str)
更优的列表存储读取方案推荐
根据你的使用场景可以选择以下方案,替换原有的str(list)明文存储逻辑:
- JSON格式存储
适用场景:需要跨语言读写、需要明文可直接查看内容
优势:通用标准格式、读写逻辑简单
示例代码:import json # 存储 with open("data.json", "w", encoding="utf-8") as f: json.dump(target_list, f) # 读取 with open("data.json", "r", encoding="utf-8") as f: target_list = json.load(f) - Pickle二进制存储
适用场景:仅Python环境使用、列表包含复杂Python类型
优势:读写速度快、支持几乎所有Python原生类型、存储体积小
注意:不要读取来源不可信的pickle文件,存在执行恶意代码的风险
示例代码:import pickle # 存储 with open("data.pkl", "wb") as f: pickle.dump(target_list, f) # 读取 with open("data.pkl", "rb") as f: target_list = pickle.load(f) - Numpy格式存储
适用场景:列表为纯数值类型、后续需要做数值计算、数据量较大
优势:读写速度极快、存储压缩率高、直接兼容numpy数值操作
示例代码:import numpy as np # 存储 np.save("data.npy", np.array(target_list)) # 读取 target_list = np.load("data.npy").tolist()
内容的提问来源于stack exchange,提问作者R0Best
相关产品推荐
相关产品推荐

