attributionapi / app /utils /converter.py
thanhnt-cf's picture
support product can be str or list
9bb2fc2
raw
history blame
1.12 kB
def product_data_to_str(product_data: dict[str, any]) -> str:
"""
Convert product data to a string.
Args:
- product_data: a dictionary of product data
Returns:
- a string representation of the product data
"""
if product_data is None:
return ""
data_list = []
for k, v in product_data.items():
data_line = None
if isinstance(v, list):
delimiter = ","
for sub_v in v:
if "," in sub_v:
delimiter = (
";" # Use semicolon as delimiter if comma is found in the value
)
for i, sub_v in enumerate(v):
if ";" in sub_v:
v[i] = f'"{sub_v}"'
data_line = f"{k}: {f'{delimiter} '.join(v)}"
elif isinstance(v, str):
data_line = f"{k}: {v}"
else:
raise ValueError(
f"Unsupported data type for value of product data: {type(v)}. Only list and str are supported."
)
data_list.append(data_line)
return "\n".join(data_list)