Манипулирование строками: как выделить слово в словаре - PullRequest
0 голосов
/ 31 августа 2018

Я довольно новичок в python. Мне интересно, как бы вы извлекли 'FRI-AA-02' из этой строки в dictionary.

{ 
   "layers": {},
   "definitionExpression": "(UPPER(Auto_Trash_Route) = UPPER('FRI-AA-02'))"
}

Больше примеров:

{
"id": "1",
"layers": {}"
"definitionExpression": "(UPPER(Auto_Yard_Route) = UPPER('FRI-AY-01'))"
}


{
"id": "4",
"layers": {}"
"definitionExpression": "(UPPER(Auto_Yard_Route) = UPPER('THU-AY-23'))"
}

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Вы также можете использовать:

Использование подстроки:

d= { 
   "layers": {},
   "definitionExpression": "(UPPER(Auto_Trash_Route) = UPPER('FRI-AA-02'))"
}

d['definitionExpression'][34:-3]
#returns 'FRI-AA-02'

с использованием регулярных выражений:

import re
re.findall(r"(?<=')[^']+(?=')",d['definitionExpression'])

используя split:

d['definitionExpression'].split("'")[1]

с использованием регулярного выражения в формате:

re.findall(r"\w{3}-\w{2}-\d{2}",d['definitionExpression'])
0 голосов
/ 31 августа 2018

Вы также можете использовать регулярные выражения, чтобы извлечь что-нибудь между одинарные кавычки:

>>> import re
>>> 
>>> d = { 
...    "layers": {},
...    "definitionExpression": "(UPPER(Auto_Trash_Route) = UPPER('FRI-AA-02'))"
... }
>>> 
>>> re.findall(r"'([^']*)'", d['definitionExpression'])
['FRI-AA-02']

Это может быть полезно, если у вас есть другие случаи, когда вы должны найти несколько подстрок в одинарных кавычках:

>>> import re
>>>
>>> s = "'a', 'b'"
>>> re.findall(r"'([^']*)'", s)
['a', 'b']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...