2012-03-01 6 views
0

simplejson.loads(source_urls)を使用してJSONをPythonオブジェクトに変換しようとしています。文字列にsimplejson.loads()を使用できません

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) 

誰もがどんな考えを持っていますか?あなたが行うことができます

"[u'http://www.google.com', u'http://www.yahoo.com', u'http://www.facebook.com']" 

+1

を検索します。 JSONはどこにも表示されません。なぜあなたはDBのような文字列を持っていますか? –

答えて

4

あなたが本当に単一の文字列source_urls含むを持っていると仮定すると

import ast 
urls = ast.literal_eval(source_urls) 

これが真のコードの実行を許可しません。 「文字列、数値、タプル、リスト、辞書、ブール値、およびなし」のみを処理します。

+0

これは機能しました。どうもありがとう! –

+0

astはjsonモジュールと比較して雷が速く感じられます – enthus1ast

0

JSONのすべての文字列を二重引用符で囲む必要があります。 Refernece: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_urls文字列がsimplejson.dumpsによってコードされていないように。これがお役に立てば幸い正確にPythonのコードの行のように見える

関連する問題