目前,我在将(使用python) EMOJI数据上传到大型查询时遇到了一个问题
这是示例代码,我正试图上传到BQ:
{"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 中使用”
我是否应该手动(硬编码)更改所有的表情符号代码,这是可以接受的格式?
发布于 2018-09-04 20:52:53
正如用户“数字”在其评论中提到的那样:
查看charbase.com/1f618-unicode-face-throwing-a-kiss,您想要的是将javascript转义字符转换为实际的unicode数据。
,您需要更改表情符号的编码,以便将它们准确地表示为一个字符:
SELECT "\U0001f604 \U0001f4b8"
-- , "\ud83d\udcb8"
-- , "\ud83d\ude04"
第2行和第3行失败,出现类似Illegal escape sequence: Unicode value \ud83d is invalid at [2:7]
的错误,但是第一行在BigQuery和Data中提供了正确的显示:
关于这方面的其他想法:
发布于 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列出不同表示形式的一些参考资料:
https://stackoverflow.com/questions/52169443
复制相似问题