def extract_fields(self):
<EOL>dm = IDataManager(self.context)<EOL>fieldnames = filter(lambda name: name not in self.ignore, self.keys)<EOL>out = dict()<EOL>for fieldname in fieldnames:<EOL><INDENT>try:<EOL><INDENT>fieldvalue = dm.json_data(fieldname)<EOL><DEDENT>except Unauthorized:<EOL><INDENT>logger.debug("<STR_LIT>" % fieldname)<EOL>continue<EOL><DEDENT>except ValueError:<EOL><INDENT>logger.debug("<STR_LIT>" % fieldname)<EOL>continue<EOL><DEDENT>out[fieldname] = api.to_json_value(self.context, fieldname, fieldvalue)<EOL><DEDENT>return out<EOL>
Extract the given fieldnames from the object

        :returns: Schema name/value mapping
        :rtype: dict