1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| import asyncio import json from typing import List, Dict, Optional
class DataProcessor: def __init__(self, config: Dict): self.config = config self.data = [] async def process_data(self, items: List[Dict]) -> List[Dict]: """处理数据的异步方法""" processed = [] for item in items: cleaned_item = self._clean_item(item) if self._validate_item(cleaned_item): processed.append(cleaned_item) return processed def _clean_item(self, item: Dict) -> Dict: """清理单个数据项""" return {k: v.strip() if isinstance(v, str) else v for k, v in item.items()} def _validate_item(self, item: Dict) -> bool: """验证数据项""" required_fields = self.config.get('required_fields', []) return all(field in item for field in required_fields)
async def main(): config = {"required_fields": ["name", "email"]} processor = DataProcessor(config) data = [ {"name": "Alice", "email": "alice@example.com"}, {"name": "Bob", "email": "bob@example.com"} ] result = await processor.process_data(data) print(json.dumps(result, indent=2))
if __name__ == "__main__": asyncio.run(main())
|