list items by type

FCurves are no ID types, so it’s useless to search them in bpy.data directly. You would need to traverse all the sub-structures and find FCurves there. But I would rather look in the places where the FCurves are, I can’t see a reason why you would scan all data structures at runtime for FCurves…

BTW: if you want to filter by type, it is prefered to use a .type property if there is one, or otherwise isinstance(…, bpy.types.) instead of type(…) = bpy.types.