如何将unicode对象转换为字符串或Python字典
因为一次API调用,我得到了一个<type 'unicode'>
类型的对象:
{"From":"en","Translations":[{"Count":0,"MatchDegree":100,"MatchedOriginalText":"","Rating":5,"TranslatedText":"Cómo estás"}]}
但是当我尝试用simplejson_loads()
来解析它时,出现了这个错误:
simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我该如何处理这种对象呢?
编辑 II:这个JSON是正确的。问题出在字符串开头的BOM(字节顺序标记)。我试图用.encode('utf-8-sig')
来去掉它,但却产生了错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufeff' in position 2: ordinal not in range(128)
不过在这个讨论中,我找到了一个对我有效的解决方案:
if u.startswith(u'\ufeff'):
u = u[1:]
我现在很想就这样解决问题,心满意足。
2 个回答
0
试着只解析JSON,也就是在第一个{和最后一个}之间的内容。
如果这样还不够,请提供更多细节。
0
试试这个:
import asp
foo = ast.literal_eval(your_result)
这个代码会把unicode对象转换成Python字典,这样做能解决你的问题吗?