首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在上传到大查询时,表情符号崩溃

在上传到大查询时,表情符号崩溃
EN

Stack Overflow用户
提问于 2018-09-04 15:15:24
回答 2查看 770关注 0票数 3

目前,我在将(使用python) EMOJI数据上传到大型查询时遇到了一个问题

这是示例代码,我正试图上传到BQ:

代码语言:javascript
运行
复制
 {"emojiCharts":{"emoji_icon":"\ud83d\udc4d","repost": 4, "doc": 4, "engagement": 0, "reach": 0, "impression": 0}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\udc49","repost": 4, "doc": 4, "engagement": 43, "reach": 722, "impression": 4816}} 
 {"emojiCharts":{"emoji_icon":"\u203c","repost": 4, "doc": 4, "engagement": 0, "reach": 0, "impression": 0}} 
 {"emojiCharts":{"emoji_icon":"\ud83c\udf89","repost": 5, "doc": 5, "engagement": 43, "reach": 829, "impression": 5529}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude34","repost": 5, "doc": 5, "engagement": 222, "reach": 420, "impression": 2805}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude31","repost": 3, "doc": 3, "engagement": 386, "reach": 2868, "impression": 19122}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\udc4d\ud83c\udffb","repost": 5, "doc": 5, "engagement": 43, "reach": 1064, "impression": 7098}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude3b","repost": 3, "doc": 3, "engagement": 93, "reach": 192, "impression": 1283}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude2d","repost": 6, "doc": 6, "engagement": 212, "reach": 909, "impression": 6143}} 
 {"emojiCharts":{"emoji_icon":"\ud83e\udd84","repost": 8, "doc": 8, "engagement": 313, "reach": 402, "impression": 2681}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude18","repost": 7, "doc": 7, "engagement": 0, "reach": 8454, "impression": 56366}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude05","repost": 5, "doc": 5, "engagement": 74, "reach": 1582, "impression": 10550}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude04","repost": 5, "doc": 5, "engagement": 73, "reach": 3329, "impression": 22206}}

问题是大查询不能看到任何这个表情符号(\ud83d\ude04),只能以这种格式(\u203c)显示。

即使字段是 string ,它也会显示2条黑色罗马,为什么BQ不能将表情符号显示为字符串而不将其转换为实际的表情符号呢?

问题:

是否有任何方法将表情符号上传到大查询以正确加载?-“将在Google 中使用”

我是否应该手动(硬编码)更改所有的表情符号代码,这是可以接受的格式?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-04 20:52:53

正如用户“数字”在其评论中提到的那样:

查看charbase.com/1f618-unicode-face-throwing-a-kiss,您想要的是将javascript转义字符转换为实际的unicode数据。

,您需要更改表情符号的编码,以便将它们准确地表示为一个字符:

代码语言:javascript
运行
复制
SELECT "\U0001f604 \U0001f4b8"
--   , "\ud83d\udcb8"
--   , "\ud83d\ude04"

第2行和第3行失败,出现类似Illegal escape sequence: Unicode value \ud83d is invalid at [2:7]的错误,但是第一行在BigQuery和Data中提供了正确的显示:

关于这方面的其他想法:

票数 2
EN

Stack Overflow用户

发布于 2021-08-15 07:21:12

Python不支持“代理字符”表示,它由多个UTF-16字符组成,一些表情符号(通过0xFFFF)使用它们。例如,可以用\U0001f3e6 (UTF-32)来表示Python,有些语言使用\ud83c\udfe6。由于这些值小于0xFFFF,python和其他语言都使用相同的表示形式,例如\u3020 (〠)。为了解决编码问题,您可以手动转换表情符号或考虑使用一些库,例如https://github.com/hartwork/surrogates将它们转换为UTF-32。

此外,BigQueqry Python的load_table_from_json对于那些值位于0xFFFF之上的字符也有错误,甚至使用正确的UTF-32表示。几天前,它刚刚发布了一个新版本来修复它。参考文献:https://github.com/googleapis/python-bigquery/releases/tag/v2.24.0

关于Bank列出不同表示形式的一些参考资料:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52169443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档