我正在尝试使用simplejson.loads(source_urls)
将JSON
转换为Python对象。
source_urls = [u'http://www.google.com', u'http://www.yahoo.com', u'http://www.facebook.com']
该行来自记录器输出。尽管看起来像一个列表,它实际上存储为数据库中的字符串。
我收到以下错误:
JSONDecodeError:
Expecting object: line 1 column 1 (char 1)
有人有任何想法吗?
答案 0 :(得分:4)
假设您确实有一个字符串source_urls
包含:
"[u'http://www.google.com', u'http://www.yahoo.com', u'http://www.facebook.com']"
你可以这样做:
import ast
urls = ast.literal_eval(source_urls)
这不允许真正的代码执行。它只处理“字符串,数字,元组,列表,字符串,布尔值和无”。
答案 1 :(得分:0)
JSON中的所有字符串必须用双引号括起来。参考:http://simonwillison.net/2006/oct/11/json/
source_urls = '["http://www.google.com", "http://www.yahoo.com",
"http://www.facebook.com"]'
simplejson.loads(source_urls)
['http://www.google.com', 'http://www.yahoo.com', 'http://www.facebook.com']
看起来source_files字符串不是由simplejson.dumps编码的。希望这会有所帮助..