在字符串后提取文本

Extracting text after string

我想从下面的文本中提取“name=”之后的字符串。我已经编写了以下正则表达式,但它并没有真正起作用。期望的输出是 [Taal, Muntinlupa city]

    text = [ "id='00e5885868b4d7ed', url='https://api.twitter.com/1.1/geo/id/00e5885868b4d7ed.json', place_type='city', name='Taal', full_name='Taal, Calabarzon', country_code='PH', country='Republic of the Philippines'",
     "id='00c699d656122ebe', url='https://api.twitter.com/1.1/geo/id/00c699d656122ebe.json', place_type='city', name='Muntinlupa City', full_name='Muntinlupa City, National Capital Region', country_code='PH', country='Republic of the Philippines']

    matched_vals = [re.findall(r'(?<=name\=).*(?=\s)',tweet) for tweet in text]

使用模式r"name='(.+?)'"

例如:

import re

text = [ "id='00e5885868b4d7ed', url='https://api.twitter.com/1.1/geo/id/00e5885868b4d7ed.json', place_type='city', name='Taal', full_name='Taal, Calabarzon', country_code='PH', country='Republic of the Philippines'",
 "id='00c699d656122ebe', url='https://api.twitter.com/1.1/geo/id/00c699d656122ebe.json', place_type='city', name='Muntinlupa City', full_name='Muntinlupa City, National Capital Region', country_code='PH', country='Republic of the Philippines'"
]

for i in text:
    print(re.search(r"name='(.+?)'", i).group(1))

输出:

Taal
Muntinlupa City

从字符串中创建字典,并获取键的值 'name':

dicts = []
for dic in text:
    dicts.append(ast.literal_eval(dic))

然后你可以使用这些名称(以及其他非常有效的数据):

for d in dicts:
    print(d['name'])