Использование dict.get для условного назначения ключей для вложенных словарей - PullRequest
0 голосов
/ 22 мая 2018

Я пишу цикл для импорта 20 файлов .json.Я хочу создать словарь из 20 словарей.У меня есть все, кроме того, что мне нужно условно использовать одно из двух полей для назначения 20 имен словаря (т. Е. 20 ключей в словаре верхнего уровня).

Последние две строки моего цикла:

name=jsondat.get('Info', {}).get('Name')
dict1[name] = text_dict

Строка name прекрасно работает, за исключением того, что ['Info']['Name'] не существует во всех 20 файлах .json.В этих случаях я надеюсь использовать регулярное выражение для извлечения подстроки из другого поля в ['Info'].Для краткости, давайте просто скажем, что я хочу использовать поле с именем 'URL'.Кажется, мне нужно сделать что-то вроде:

name=jsondat.get('Info', {}).get('Name','URL')
dict1[name] = text_dict

Но это не работает.Он работает, но фактически не использует поле 'URL', когда 'Name' недоступно.

1 Ответ

0 голосов
/ 22 мая 2018

Вы можете сделать что-то вроде

info = jsondat.get('Info', {})
name = info.get('Name', info.get('URL', None))

, которое будет использовать значение для «Имя», если оно существует, в противном случае оно ищет «URL», в противном случае просто возвращает «Нет».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...