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

如何将字符串类型的字典列表转换为可索引操作的列表?

把字符串形式的字典列表转换成可索引的列表

这里有两种简单可靠的方法解决你的问题:

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

这是最安全也最直接的方式,它专门用来解析Python的字面量结构,不会像eval那样存在执行恶意代码的安全风险,完美适配你这种字符串形式的列表+字典结构。

步骤很简单:

  • 导入ast模块
  • 用ast.literal_eval()解析你的字符串变量

示例代码:

import ast

# 你的原始字符串变量
a = "[{'id': 35, 'name': 'Comedy'}, {'id': 18, 'name': 'Drama'}, {'id': 10751, 'name': 'Family'}, {'id': 10749, 'name': 'Romance'}]"

# 转换为真正的列表
converted_list = ast.literal_eval(a)

# 现在可以正常通过索引访问字典了
print(converted_list[0])  # 输出: {'id': 35, 'name': 'Comedy'}

方法2:使用json.loads

如果你的字符串结构比较规整,也可以用JSON模块来转换,但需要先把字符串里的单引号替换成双引号——因为JSON语法强制要求键和字符串值必须用双引号包裹。

示例代码:

import json

a = "[{'id': 35, 'name': 'Comedy'}, {'id': 18, 'name': 'Drama'}, {'id': 10751, 'name': 'Family'}, {'id': 10749, 'name': 'Romance'}]"

# 将单引号替换为双引号,适配JSON格式
json_str = a.replace("'", '"')

# 转换为列表
converted_list = json.loads(json_str)

# 测试索引访问
print(converted_list[1])  # 输出: {'id': 18, 'name': 'Drama'}

⚠️ 注意:如果你的字符串里的字典值本身包含单引号(比如{'name': "O'Neil"}),直接用replace会破坏原有结构,这时候ast.literal_eval是更稳妥的选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:21:02