我想使用复制表的 5 列进行导出,其中 3 列包含 ID、文本和时间戳值,但其中 2 列包含 JSON 和 GeoJSON 元素,例如:
// Please, note the non-quoted string Value1
// when there is no space in the value itself:
{"key": "value with space", "other_key": Value1, ...}
但是当使用这个命令时:
psql \
-d <connection_uri> \
--command "\copy public.mytable (id, json_array, geojson_field, status, timestamp) TO './file.csv' DELIMITER ';' CSV HEADER ENCODING 'UTF8' QUOTE '\"' ;"
结果看起来很奇怪:
11784,"{'"First value'",'"Second value'", ThirdValue, '"Fourth val'",...
即它以奇怪的顺序放置引号:“single-double <field_value> single-double”
(我也没有得到标题......)
我希望我可以在 csv 文件中以一个真正的 JSON 对象结束,我可以复制/粘贴到验证器中,例如这里没有错误。
难道我做错了什么?
如果是,如何解决?
PG:13
我最终以这种方式使用它, using
FORCE_QUOTE
,它实际上通过在需要的 JSON 键和值周围放置 2 个双引号来工作: