UnicodeEncodeError: 'utf-8' codec can't encode characters in position 10-11: surrogates not allowed

出现这个问题是里面有非法字符

情况一

无法保存到数据库, 因为 emojji不是四个字节,所以保存不到,修改utf8编码为utf8mb4
CHARSET=utf8mb4;



情况二(快他妈难哭了)

#熊二来电 狗熊来电? @趙雲哥哥?(风华绝代浪浪) @《龍七团》姜少❗️(风华浪浪)

中的狗熊来电?招手,还有赵云哥哥后三叉戟?


网上找了很多资料,然并卵,决绝不了。后来艰苦奋斗自力更生解决了·。

temp = {'caption': '#熊二来电 狗熊来电\ud83d\ude4b @趙雲哥哥\ud83d\udd31(风华绝代浪浪) @《龍七团》姜少❗️(风华浪浪)'}

temp为字典,temp.get('caption')**取不到相应数据,temp['caption']也取不到相应的数据,还报错。

解决办法

敲黑板划重点了

import json
ll = {'caption': '#熊二来电 狗熊来电\ud83d\ude4b @趙雲哥哥\ud83d\udd31(风华绝代浪浪) @《龍七团》姜少❗️(风华浪浪)'}

tt = json.dumps(ll) 转成字符串
dd = json.loads(tt)  再转成dicts

print(dd['caption'])
print(dd.get('caption'))

终于搞定了。

如帮你解决请点个赞,谢谢。

你可能感兴趣的:(p爬虫)