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

如何将unicode对象转换为字符串或python字典,python,unicode,python-unicode,Python,Unicode,Python Unicode,结果,我得到了的以下对象: 但是当我试图用simplejson\u loads()解析它时,我得到了以下错误: simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 我如何处理这类对象 编辑II:JSON是正确的。把事情搞砸的是字符串开头的BOM表。试图用清除它。encode('utf-8-sig')会产生错误 UnicodeEncodeError: 'ascii' codec can't e

结果,我得到了
的以下对象:

但是当我试图用
simplejson\u 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:]

我很想侥幸逃脱,过得开心

试着只解析JSON,不管它在第一个{和最后一个}之间

如果这还不够,请提供更多详细信息。

试试以下方法:

import asp

foo = ast.literal_eval(your_result)

这会将unicode对象转换为python字典,这是您的解决方案吗?

我不确定您的意思。我确实试图解析整个过程,也就是从第一个{和最后一个}开始,我报告了我得到的错误。API响应中只有JSON。无法复制<代码>导入json;loads(u'that string')返回预期的
dict
@roippi您是对的。这看起来像是一个编码问题。我用进一步的信息编辑了这个问题…
literal\u eval()
有效(以及
json.loads()
),但前提是我先删除BOM表。原来这是所有问题的根源。。。
import asp

foo = ast.literal_eval(your_result)