All the L means is that it's in long integer (64-bit) form, so your returned value is indeed still correct. When you create a new dictionary with entries already in there (as you are), it's going to automatically convert all of the entries to long form; instead you should use a tuple or simply print each one in the loop itself:
for row in prsnobj.result:
print row[0] + " : " + row[1]
or
for row in prsnobj.result:
ansdb = (row[0], row[1])
print ansdb
Depending on how your prsnobj object was defined, you may end up getting long integers still. If so, you need to look back at the code that defines prsnobj and check that it was created properly. Use printouts to make sure that the object is always in the state that you want it to be in!