【发布时间】:2021-12-21 07:59:38
【问题描述】:
如何从这个字符串"[{'id': 53, 'name': 'Thriller'}, {'id': 18, 'name': 'Drama'}]"中提取name键
我尝试过使用这个 re 命令:
re.findall(r"'name': \D{1,}", text)
但它似乎不起作用
我也尝试过使用json.loads(text)
但它给出了错误
JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 3 (char 2)
知道如何解决这个问题吗?
【问题讨论】:
-
如果您不想使用
eval,请将单引号替换为双引号:json.loads(s.replace("'", '"')) -
如果您可以控制字符串的生成方式,最好的办法是首先确保它是正确的 JSON。
-
@JohnnyMopp 请注意,如果字符串包含双引号或转义单引号,这将失败。
-
@Amadan 是的,没错。
标签: python json string dictionary data-manipulation