从字符串格式的对象中提取键
Extract a key from an object in string format
如何从此字符串 "[{'id': 53, 'name': 'Thriller'}, {'id': 18, 'name': 'Drama'}]"
中提取 name
键
我试过使用这个重新命令:
re.findall(r"'name': \D{1,}", text)
但是好像不行
我也试过使用json.loads(text)
但它给出了错误
JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 3 (char 2)
知道如何解决这个问题吗?
import ast
s = "[{'id': 53, 'name': 'Thriller'}, {'id': 18, 'name': 'Drama'}]"
lst = ast.literal_eval(s)
names = [d["name"] for d in lst]
print(names)
输出
['Thriller', 'Drama']
作为替代方案,使用第三方模块 pyyaml
,如下所示:
import yaml
s = "[{'id': 53, 'name': 'Thriller'}, {'id': 18, 'name': 'Drama'}]"
lst = yaml.load(s, Loader=yaml.Loader)
names = [d["name"] for d in lst]
print(names)
输出
['Thriller', 'Drama']
如何从此字符串 "[{'id': 53, 'name': 'Thriller'}, {'id': 18, 'name': 'Drama'}]"
name
键
我试过使用这个重新命令:
re.findall(r"'name': \D{1,}", text)
但是好像不行
我也试过使用json.loads(text)
但它给出了错误
JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 3 (char 2)
知道如何解决这个问题吗?
import ast
s = "[{'id': 53, 'name': 'Thriller'}, {'id': 18, 'name': 'Drama'}]"
lst = ast.literal_eval(s)
names = [d["name"] for d in lst]
print(names)
输出
['Thriller', 'Drama']
作为替代方案,使用第三方模块 pyyaml
,如下所示:
import yaml
s = "[{'id': 53, 'name': 'Thriller'}, {'id': 18, 'name': 'Drama'}]"
lst = yaml.load(s, Loader=yaml.Loader)
names = [d["name"] for d in lst]
print(names)
输出
['Thriller', 'Drama']