如何将unicode对象转换为字符串或Python字典

0 投票
2 回答
968 浏览
提问于 2025-04-18 06:49

因为一次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字典,这样做能解决你的问题吗?

撰写回答