从Twitter检索推文时,以下是收到的原始JSON片段(通过Fiddler捕获:
[{"text":"\"California GOP Files FEC Complaint Over Obama Visit to Dying Grandmother\"\r\nhttp:\/\/url.com\/6jd5j5"}]
对其执行一些操作后,包括反序列化,然后重新序列化(通过
JSON.NET
),它在数据库中的结尾如下:
{"text": "\"California GOP Files FEC Complaint Over Obama Visit to Dying Grandmother\"\r\nhttp://url.com/6jd5j5"}
唯一的区别是URL在正斜杠周围没有反斜杠转义。(我不确定这是否有什么大不了的,如果有,请插话)
我的困惑实际上是如何处理这些转义的控件字符。使用MySQL的
JSON_UNQUOTE function
,它将取消显示角色。这个
\r\n
正确转义,但它在文本周围保留双引号,这很有趣。。。
+----------+-------------------------------------------------------------------------------------------------------+
| user_id | JSON_UNQUOTE(JSON_EXTRACT(tw.tweet_json, '$.text')) |
+----------+-------------------------------------------------------------------------------------------------------+
| 12844052 | "California GOP Files FEC Complaint Over Obama Visit to Dying Grandmother"
http:
+----------+-------------------------------------------------------------------------------------------------------+
下面是我不使用JSON\u UNQUOTE unescape函数时的情况:
+-------------------------------------------------------------------------------------------------------------+
| JSON_EXTRACT(tw.tweet_json, '$.text') |
+-------------------------------------------------------------------------------------------------------------+
| "\"California GOP Files FEC Complaint Over Obama Visit to Dying Grandmother\"\r\nhttp://url.com/6jd5j5" |
+-------------------------------------------------------------------------------------------------------------+
我需要将这些推文导出到CSV文件,供Excel或Google工作表使用。
我在查询后使用以下说明符:
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/so.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
使用Excel打开CSV文件会显示以下内容:
(第二行/条目使用JSON\U UNESCAPE特性)
请注意,第二个条目在使用JSON\u UNESCAPE特性时显示了过多的斜杠。
以下是在记事本中打开的CSV文件:
"\"\\\"California GOP Files FEC Complaint Over Obama Visit to Dying Grandmother\\\"\\r\\nhttp://url.com/6jd5j5\""
"\"California GOP Files FEC Complaint Over Obama Visit to Dying Grandmother\"
\
http://url.com/6jd5j5"
问题:
我怎样才能正确地避开这里的推文,以便它可以被解读为原意?
Original Tweet Link
编辑
使用建议
ESCAPED BY '"'
从…起
@Michael-sqlbot
让我更接近了——但现在打开CSV时,推特的第二部分(URL)位于新的单元格中。我已经在Excel和Google工作表中验证了这一点:
渲染的CSV图像(复制和粘贴文本效果不佳)