Postgresql PSQL向字符串添加换行符
我在PSQL中有一个函数,可以向特定用户发送电子邮件。函数接受电子邮件文本参数,并将其添加到电子邮件正文中前后的一些常量文本中: 在这个函数中,我有一个json_build_对象调用,它处理电子邮件的收件人、正文和标题:Postgresql PSQL向字符串添加换行符,postgresql,Postgresql,我在PSQL中有一个函数,可以向特定用户发送电子邮件。函数接受电子邮件文本参数,并将其添加到电子邮件正文中前后的一些常量文本中: 在这个函数中,我有一个json_build_对象调用,它处理电子邮件的收件人、正文和标题: jsonb_build_object( 'recipient',recipient, 'title',title, 'message_text', 'some text before.
jsonb_build_object(
'recipient',recipient,
'title',title,
'message_text', 'some text before.
some text on new line ' || body ||
' some text after.
some text on new line.'
)
我的问题是,在正文前后的文本中,我无法将其格式化为单独的行。我尝试了以下方法,但无效:
jsonb_build_object(
'recipient',recipient,
'title',title,
'message_text', E'some text before.\n
some text on new line \n' || body ||
E'\nsome text after.\n
some text on new line.'
)
有人能告诉我哪里做错了吗?您做得正确,结果在表单中有换行符\n。这就是JSON中文本中的换行符的外观 RFC 8259对此进行了描述: 字符串以开头和结尾 引号。所有Unicode字符都可以放在 引号,必须转义的字符除外: 引号、反向索利多士和控制字符U+0000 通过U+001F 换行符是字符U+000A,因此必须对其进行转义
如果需要不带换行符的换行符,请使用JSON以外的其他内容。如果正确执行,则结果将以以下形式显示换行符\n。这就是JSON中文本中的换行符的外观 RFC 8259对此进行了描述: 字符串以开头和结尾 引号。所有Unicode字符都可以放在 引号,必须转义的字符除外: 引号、反向索利多士和控制字符U+0000 通过U+001F 换行符是字符U+000A,因此必须对其进行转义
如果您想要不带换行符的换行符,请使用JSON以外的内容。Laurenz Albe从JSON的结尾指出了这个问题。我的答案是关于另一端的 你用JSON做什么来把它写进电子邮件 从那里你可能想做什么就做什么。Python中的一个示例:
select * from json_build_object(
'recipient', 'aklaver',
'title', 'head bottlewasher',
'message_text', 'some text before.\nsome text on new line ' || ' The body'||' some text after.\nsome text on new line.'
);
json_build_object
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{"recipient" : "aklaver", "title" : "head bottlewasher", "message_text" : "some text before.\\nsome text on new line The body some text after.\\nsome text on new line."}
email_str = "some text before.\\nsome text on new line The body some text after.\\nsome text on new line."
print(email_str.replace("\\n", "\n"))
some text before.
some text on new line The body some text after.
some text on new line.
Laurenz Albe从一开始就指出了这个问题。我的答案是关于另一端的 你用JSON做什么来把它写进电子邮件 从那里你可能想做什么就做什么。Python中的一个示例:
select * from json_build_object(
'recipient', 'aklaver',
'title', 'head bottlewasher',
'message_text', 'some text before.\nsome text on new line ' || ' The body'||' some text after.\nsome text on new line.'
);
json_build_object
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{"recipient" : "aklaver", "title" : "head bottlewasher", "message_text" : "some text before.\\nsome text on new line The body some text after.\\nsome text on new line."}
email_str = "some text before.\\nsome text on new line The body some text after.\\nsome text on new line."
print(email_str.replace("\\n", "\n"))
some text before.
some text on new line The body some text after.
some text on new line.