import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-u', '--up')
parser.add_argument('-l', '--low')
if __name__ == "__main__":
    namespace = parser.parse_args()
    if namespace.up is not None:
        print(namespace.up.upper())
    if namespace.low is not None:
        print(namespace.low.lower())        
  
  Я хочу, чтобы переданный отработал спокойно, а не переданные не вызывали ошибок.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-u', '--up')
parser.add_argument('-l', '--low', default='MUDAK')
if __name__ == "__main__":
    namespace = parser.parse_args()
    print(namespace.up.upper())
    print(namespace.low.lower())        
  
  
  
  json.load(in_file)?
  
  import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--add', type=str, nargs='+')
parser.add_argument('--check', type=str, nargs='+')
args = parser.parse_args()
########
# вот тут хоть обчитайся своих джейсонов, а у меня просто словарик
db = {'bla': 'бла'}
########
for k in args.check:
    print(k, ':', db.get(k))
print('-----------------')
for s in args.add:
    k, v = s.split('=')
    db[k] = v
print(db)> prog.py --add qwe=rty abc=42 --check bla whatbla : бла
what : None
-----------------
{'bla': 'бла', 'qwe': 'rty', 'abc': '42'}        
  
  Вопрос заключается не в работе со словарями, а в правильной организации взаимодействия с несколькими аргументами командной строки, когда был вызван только один из них, а другие выдают невозможность обработки значения None.
  
  
  
  
  
  
  
  
  
  
Adel Khalitov, спецификации чипов 2000й серии гуглятся на раз. Попробуй.