You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:如何将类列表结构的字符串转换为列表?

嘿,这个场景我碰到好多次了,给你几个实用的办法,优先选最安全的那种哈:

把类列表字符串转成Python列表的解决方案

方法1:使用ast.literal_eval()(强烈推荐)

这是最稳妥的方式,ast是Python标准库的模块,它专门用来解析Python的字面量(比如列表、字典、元组这些),而且不会像eval()那样执行任意代码,安全性拉满。

代码示例:

import ast

# 你的原始字符串
str_data = "['Fish & Chips', 'Fast Food', 'Restaurants']"
# 转换为列表
result_list = ast.literal_eval(str_data)

# 验证结果
print(result_list)
# 输出: ['Fish & Chips', 'Fast Food', 'Restaurants']
print(type(result_list))
# 输出: <class 'list'>

方法2:使用json.loads()(需处理引号)

JSON格式要求字符串用双引号,所以我们需要先把原始字符串里的单引号替换成双引号,再用json模块解析:

代码示例:

import json

str_data = "['Fish & Chips', 'Fast Food', 'Restaurants']"
# 替换单引号为双引号,适配JSON格式
json_compatible_str = str_data.replace("'", '"')
result_list = json.loads(json_compatible_str)

print(result_list)
# 输出: ['Fish & Chips', 'Fast Food', 'Restaurants']

⚠️ 注意:如果你的字符串里本身包含双引号(比如某个元素是"Fish & 'Chips'"),这个方法就会出错,所以通用性不如方法1。

方法3:手动分割(不推荐,容易踩坑)

如果不想用标准库,也可以手动处理字符串,但这种方法只适用于格式绝对规范的情况——要是元素里包含逗号或者单引号,直接就崩了:

代码示例:

str_data = "['Fish & Chips', 'Fast Food', 'Restaurants']"
# 去掉首尾的[],按', '分割,再去掉每个元素的单引号
result_list = [item.strip("'") for item in str_data.strip('[]').split(', ')]

print(result_list)
# 输出: ['Fish & Chips', 'Fast Food', 'Restaurants']

比如如果你的元素是['Fish, Chips', 'Fast Food'],分割后就会得到错误的结果,所以除非万不得已,别用这个方法。


内容的提问来源于stack exchange,提问作者Jachin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:02:44