ZhangZhihui's Blog  

Data contains single quote:

import json
from datetime import date, datetime

def to_greenplum_value(v):
    if v is None:
        return "NULL"
    elif isinstance(v, str):
        # escape single quotes for SQL
        return f"'{v.replace(\"'\", \"''\")}'"
    elif isinstance(v, date) and not isinstance(v, datetime):
        return f"'{v.strftime('%Y-%m-%d')}'"
    elif isinstance(v, datetime):
        return f"'{v.strftime('%Y-%m-%d %H:%M:%S')}'"
    elif isinstance(v, dict):
        if not v:  # empty dict
            return "'{}'"
        else:
            json_str = json.dumps(v, ensure_ascii=False)
            return f"'{json_str.replace(\"'\", \"''\")}'"
    else:
        return str(v)

 

Data doesn't contain single quote:

import json
from datetime import date, datetime

def to_greenplum_value(v):
    if v is None:
        return "NULL"
    elif isinstance(v, str):
        return f"'{v}'"
    elif isinstance(v, date) and not isinstance(v, datetime):
        return f"'{v.strftime('%Y-%m-%d')}'"
    elif isinstance(v, datetime):
        return f"'{v.strftime('%Y-%m-%d %H:%M:%S')}'"
    elif isinstance(v, dict):
        if not v:  # empty dict
            return "'{}'"
        else:
            return f"'{json.dumps(v, ensure_ascii=False)}'"
    else:
        return str(v)

 Looks same with the to_hive_value() function.

posted on 2025-09-24 09:07  ZhangZhihuiAAA  阅读(5)  评论(0)    收藏  举报