Правильно экранировать эту строку переменной, чтобы она не выводилась

Используя deepdiff вам не нужно знать точные ключи:

import json
from deepdiff import DeepSearch
DeepSearch(json.load(open("members.json", "r")), 'memberId', verbose_level=2)['matched_paths'].values()

0
20.08.2017, 14:41
2 ответа
dpkg-query -W --showformat='${Status}\n' unzip 2>/dev/null
3
28.01.2020, 02:15

Можно просто сделать

 apt-get --assume-yes install unzip

Если он установлен, он ничего не сделает (, если он не устарел, и в этом случае он будет обновлен ).

Если вы хотите, чтобы было тихо, добавьте к этому --quietили перенаправьте на/dev/null:

apt-get -qq --assume-yes install unzip

(-qqявляется «очень тихим», но см. руководство apt-getоб этом флаге)

Если вы действительно хотите сначала узнать о существовании пакета, вы можете сделать

if ! dpkg-query -W unzip >/dev/null 2>&1; then
  apt-get --assume-yes install unzip
fi

dpkg-queryзавершает работу с не -нулевым статусом выхода, если не может найти пакет. Мы перенаправляем и стандартный вывод, и стандартную ошибку на /dev/null, так как все, что там написано, неинтересно.


Причина, по которой вы получаете сообщение об ошибке на терминале, заключается в том, что dpkg-queryзаписывает его в стандартный поток ошибок, в то время как ваш сценарий захватывает только стандартный поток вывода.

3
28.01.2020, 02:15

Теги

Похожие вопросы