If necessary, update pydal
Explanation: It sounds like an instance of iteritems is not being converted to python 3 - I think that happens in pydal._compat.py.
If that is not the problem, continue...
Check value of: type(c.keywords)
Check value of: print(list(c.keywords))
If
type(c.keywords) is map, then surely this should work:
response.meta.keywords = ', '.join( list( c.keywords) )
My idea would be to convert c.keywords to a simple string, then concatenate it to
response.meta.keywords afterwards.
General info: response.meta is a Storage object which is really just a special web2py dict.
In other words,
this: response.meta.keywords = 'my key word string'
would be equivalent to this: response.meta['keywords'] =
'my key word string'