【发布时间】:2020-11-25 04:26:07
【问题描述】:
我正在使用 Python 将 JSON 对象插入到 PostgreSQL 数据库表中。 嵌套的 JSON 是高度嵌套的。 其中一些 JSON 对象中的字符串包括“\u0000”,这是一个非法字符和 UNICODE,必须在插入 PG 之前进行清理。
最快的方法是什么?
【问题讨论】:
标签: python json postgresql unicode sanitization
我正在使用 Python 将 JSON 对象插入到 PostgreSQL 数据库表中。 嵌套的 JSON 是高度嵌套的。 其中一些 JSON 对象中的字符串包括“\u0000”,这是一个非法字符和 UNICODE,必须在插入 PG 之前进行清理。
最快的方法是什么?
【问题讨论】:
标签: python json postgresql unicode sanitization
您能否在调用execute() 时看看这是否适合您?
>>> a = '\u0000'
>>> json.dumps(a).replace(r'\u0000', '')
'""'
>>>
r'' 是用于帮助解决引用问题的原始字符串。
【讨论】:
r'' :)
这是我想出的。
def sanitize(obj):
if isinstance(obj, str):
return obj.replace('\u0000', '')
if isinstance(obj, list):
return [sanitize(item) for item in obj]
if isinstance(obj, tuple):
return tuple([sanitize(item) for item in obj])
if isinstance(obj, dict):
return {k:sanitize(v) for k,v in obj.items()}
return obj
我在这里缺少更优雅的解决方案吗?
【讨论】:
execute()期间json.dumps(obj).replace('\u0000', '')怎么样?