I'm having trouble printing database values

0

I'm trying to print the 'ok' on the screen when it finds the value '3' inside one of the keys in the database.

>>> with dbm.open('data1.db','r') as user:
    user['0'] = '1'
    user['1'] = '2'
    user['2'] = '3'
    for i in user:
        if '3' in user[str(i)]:
            print('ok')


Traceback (most recent call last):
  File "<pyshell#146>", line 3, in <module>
    if '3' in user[str(i)]:
  File "C:\Users\ThomasNote\AppData\Local\Programs\Python\Python36-32\lib\dbm\dumb.py", line 148, in __getitem__
    pos, siz = self._index[key]     # may raise KeyError
KeyError: b"b'0'"




with dbm.open('data1.db','r') as user:
    for i in user:
        print(i.decode(), user[i].decode())

>>> 0 1
>>> 1 2
>>> 2 3 
    
asked by anonymous 24.10.2017 / 15:42

1 answer

0

By type of error it seems that the user list that is trying to update is not initialized in the corresponding keys.

However, based on the premise that the user list was initialized and updated correctly, try the following loop.

    for i in user:
     if (i=='3'):
      print('ok')
    
24.10.2017 / 19:27