def get_dict_properties(item, fields, mixed_case_fields=[], formatters={}):
row = []<EOL>for field in fields:<EOL><INDENT>if field in mixed_case_fields:<EOL><INDENT>field_name = field.replace('<STR_LIT:U+0020>', '<STR_LIT:_>')<EOL><DEDENT>else:<EOL><INDENT>field_name = field.lower().replace('<STR_LIT:U+0020>', '<STR_LIT:_>')<EOL><DEDENT>data = item[field_name] if field_name in item else '<STR_LIT>'<EOL>if field in formatters:<EOL><INDENT>row.append(formatters[field](data))<EOL><DEDENT>else:<EOL><INDENT>row.append(data)<EOL><DEDENT><DEDENT>return tuple(row)<EOL>
Return a tuple containing the item properties.
    :param item: a single dict resource
    :param fields: tuple of strings with the desired field names
    :param mixed_case_fields: tuple of field names to preserve case
    :param formatters: dictionary mapping field names to callables
       to format the values