Вернуть значение в массиве json (преобразованное в python), если оно равно другому значению - PullRequest
0 голосов
/ 08 мая 2020

Надеюсь, все в порядке и здоровы! У меня небольшой вопрос:

У меня есть json строки с этими значениями

{"ps":"Era 7"}
{"programName":"Era 1","programId":"1001"}
{"programName":"Era 2","programId":"1002"}
{"programName":"Era 3","programId":"1003"}
{"programName":"Era 4","programId":"1004"}
{"programName":"Era 5","programId":"1005"}
{"programName":"Era 6","programId":"1006"}
{"programName":"Era 7","programId":"1007"}

Мне нужно вернуть соответствующее значение "programId" значения "programName" когда "programName" равно значению "ps". Например, если «ps» - это Era7, то мне нужно «programId» значение «1007», если «Era 2», чтобы получить «1002» и так далее! Как я могу это сделать? Заранее спасибо!

1 Ответ

0 голосов
/ 08 мая 2020

Предполагая, что у вас есть эти словари, уже извлеченные из JSON, и они сохранены в списке ...

Вы можете просто l oop просмотреть все словари, сравнивая значения "programName" с «ps» для каждого словаря, затем вернуть «programId» тех, которые совпадают.

target = {'ps': 'Era 7'}
dicts  = [
{"programName":"Era 1","programId":"1001"},
{"programName":"Era 2","programId":"1002"},
{"programName":"Era 3","programId":"1003"},
{"programName":"Era 4","programId":"1004"},
{"programName":"Era 5","programId":"1005"},
{"programName":"Era 6","programId":"1006"},
{"programName":"Era 7","programId":"1007"}
]
for d in dicts:
    if d['programName'] == target['ps']:
        return d['programId']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...