问题:json.loads(xxx)
后报错ValueError: No JSON object could be decoded
原因:注意是unicode
编码和'
单引号问题引起
解决:
-
方法一:将xxx先作字符串转化
xxx.replace("u'", '"').replace("'", '"')
,然后再json.loads(xxx.replace("u'", '"').replace("'", '"'))
即可 -
方法二:使用Python内置函数
eval(expression[, globals[, locals]])
解决
说明:eval()
用来执行一个字符串表达式,并返回表达式的值,强调:eval()
可以将字符串转成表达式并执行,所以就可用该函数执行系统命令、删除文件等危险操作,因此要注意安全性
具体示例如下:
>>> test = "[[u'a',u'b'],[u'1',0]]"
>>> json.loads(test)
Traceback (most recent call last):
File "<stdin>", line 1