gpt4 book ai didi

python - Facebook 帖子数据未获得正确的字符编码

转载 作者:行者123 更新时间:2023-11-29 13:02:30 25 4
gpt4 key购买 nike

我正在尝试将 Facebook 帖子数据从特定页面(此处为 bestbuy)填充到 mysql 表中,通过 Graph API ( https://github.com/pythonforfacebook/facebook-sdk ) 提取。我正在提取帖子以及帖子的评论。这里我说的是评论,同样的问题也适用于帖子。数据库模式的字符集设置为 utf-8。现在,当我在数据库中插入评论内容 (comment_message) 时,我会在插入之前在 Python 脚本中执行 comment_message.encode('utf-8') 操作。但它不能正常工作,很多字符被其他字符替换。因此,对于以下帖子中的评论 - https://www.facebook.com/12699262021/posts/10152351243512022

comment_message.encode('utf-8') 之后产生以下结果 -

Hola Ñon-

Muchas gracias por tu pregunta. En caso de que no hayas tenido el momento, te re comiendo visitar nuestra página online http://BestBuy.com.

Aquí encontraras los precios sin impuestos. Lo impuestos varían dependiendo la cuidad y la tienda en donde finalices la compra.

Ten en cuenta que todos los productos que compres con Best Buy están destinados al uso de los Estados Unidos, cada producto tiene una garantía de fabricante e n forma gratuita. Para saber más detalles de la garantía del fabricante, te ac onsejamos que te comuniques con Nikon.

Hasta mi mejor conocimiento, todas nuestras tiendas localizadas en Nueva York es tarán abiertas el 18 de abril.

Atentamente, Karina

你可以看到很多字符都困惑了。下面是我使用 pymysql 插入的表架构 -

CREATE TABLE `xxxxxxxxxxxxxx` (
`comment_id` varchar(100) NOT NULL,
`post_id` varchar(100) DEFAULT '-',
`from_name` varchar(100) DEFAULT '-',
`from_category` varchar(50) DEFAULT '-',
`from_id` varchar(50) DEFAULT '-',
`message` varchar(10000) DEFAULT '-',
`created_time` varchar(45) DEFAULT '-',
`likes` int(10) unsigned DEFAULT '0',
`page` varchar(50) DEFAULT '-',
`type` varchar(100) DEFAULT '-',
`inserted_time` varchar(60) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

如果我尝试直接插入内容而不进行任何编码,我会得到 -

    sql = sql.encode(self.encoding)
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 148-149:
ordinal not in range(256)

最佳答案

我在这里发现了这个问题。我需要做以下两件事来摆脱它 -

首先,在 Python 脚本中将默认字符集设置为 Unicode -

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

其次,在连接数据库时,设置参数use_unicodecharset -

conn = pymysql.connect(host='xx', user='xx', passwd='xx', db='xx', use_unicode=True, charset='utf8')

关于python - Facebook 帖子数据未获得正确的字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23145154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com