import csv import json from datetime import datetime
defparse_parse_date(value): ifnot value: returnr"\N" try: obj = json.loads(value.replace("'", '"')) ifisinstance(obj, dict) and obj.get("__type") == "Date": iso = obj.get("iso") dt = datetime.fromisoformat(iso.replace("Z", "+00:00")) return dt.strftime("%Y-%m-%d %H:%M:%S") except: pass return value orr"\N"
defto_int_or_null(value): if value isNone: print(0) returnr"\N" value = str(value).strip() print(f"Checking value: '{value}'") if value.isdigit(): print(1) return value returnr"\N"
defto_str_or_null(value): if value isNone: returnr"" v = str(value).strip() return v if v elser""
defnullify(value): """把空字符串、None、空白都变成 \\N""" if value isNone: returnr"\N" v = str(value).strip() return v if v elser"\N"
# 普通字段 for field in ["comment", "link", "mail", "nick", "sticky", "like", "ua", "url"]: new_row[field] = nullify(row.get(field, "")) # status and ip use empty string as default (not \N) new_row["status"] = to_str_or_null(row.get("status", "")) new_row["ip"] = to_str_or_null(row.get("ip", ""))