26 lines
790 B
Python
26 lines
790 B
Python
"""Field extraction utilities."""
|
|
|
|
from typing import Any, Dict, List
|
|
|
|
|
|
def extract_fields(data: List[Dict[str, Any]], fields: List[str]) -> List[Dict[str, Any]]:
|
|
"""Extract specified fields from parsed data."""
|
|
result = []
|
|
for item in data:
|
|
extracted = {}
|
|
for field in fields:
|
|
if '.' in field:
|
|
parts = field.split('.')
|
|
value = item
|
|
for part in parts:
|
|
if isinstance(value, dict):
|
|
value = value.get(part)
|
|
else:
|
|
value = None
|
|
break
|
|
extracted[field] = value
|
|
else:
|
|
extracted[field] = item.get(field)
|
|
result.append(extracted)
|
|
return result
|