import pandas as pd | |
async def map_results(results: list[dict], mapping: dict[str, str]) -> pd.DataFrame: | |
values = list(mapping.values()) | |
if "title" not in values: | |
raise ValueError("title is required in the mapping") | |
if "link" not in values: | |
raise ValueError("link is required in the mapping") | |
if "body" not in values: | |
raise ValueError("body is required in the mapping") | |
mapped_data = [ | |
{mapping.get(key, key): value for key, value in result.items()} | |
for result in results | |
] | |
result = {"title": [], "link": [], "body": []} | |
for data in mapped_data: | |
result["title"].append(data["title"]) | |
result["link"].append(data["link"]) | |
result["body"].append(data["body"]) | |
return pd.DataFrame(result) | |