У меня есть диктат:
x = {'a': {'p': 'in-gaap', 'r': 'inr', 'dec': 0},
'b': {'p': 'in-ca', 'r': 'inr', 'dec': 0},
'c': {'p': 'in-gaap', 'r': '', 'dec': ''},
'd': {'p': 'in-gaap', 'r': 'inr', 'dec': 0}}
Я использую этот код для пропуска пустых значений:
for k,v in x.iteritems():
if d[k]['r'] == '' and d[k]['dec'] == '':
print k, x[k]['p']
else:
print x[k]['p'], x[k]['r'], x[k]['dec']
Но вывод:
a,in-gaap
b,in-ca
c-in-gaap
d-in-gaap
условие не выполняется должным образом, оно печатает все значения
И я тоже пытался использовать этот код
for k,v in x.iteritems():
obj = re.match('\w+', x[k]['p'])
obj1 = re.match('\w+', x[k]['q'])
if not obj1 and obj2:
print k, x[k]['p']
else:
print x[k]['p'], x[k]['r'], x[k]['dec']
Но вывод такой же, как и выше.
На самом деле пустые значения dict содержат "\n"
, ''
и т. Д. И некоторые не-ascii символы, поэтому я попытался использовать re
, но он не выполняется должным образом.