2013-03-07 4 views
11

をダンプします:PythonのJSON iは、次の文字列を持っている '' Uなしのリストにそれを有効にする必要があり

my_str = "[{u'name': u'squats', u'wrs': [[u'99', 8]], u'id': 2}]" 

私は

import ast 
str_w_quotes = ast.literal_eval(my_str) 

を使用して "を取り除くことができ、その後私が行います。

import json 
json.dumps(str_w_quotes) 

とget

[{\"id\": 2, \"name\": \"squats\", \"wrs\": [[\"55\", 9]]}] 

バックスラッシュを取り除く方法はありますか?目標は次のとおりです。あなただけのオリジナルの文字列に

>>> "[{u'name': u'squats', u'wrs': [[u'99', 8]], u'id': 2}]".replace("u\'","\'") 
"[{'name': 'squats', 'wrs': [['99', 8]], 'id': 2}]" 
+2

'使用しています '[{ "ID":[[ "99"、8] 2、 "名称": "スクワット"、 "WRSを"}]'私のために。 –

+1

エスケープされた引用符ではなく、バックスラッシュが表示されていますか?例えば ​​'' \ ""は '' "' 'と同じです。 –

+0

'u'はちょうどそれのpython <3.0でUnicode文字列です示します。単純な文字列に変換してもよろしいですか? – Tim

答えて

3
>>> "[{\"id\": 2, \"name\": \"squats\", \"wrs\": [[\"55\", 9]]}]".replace('\\"',"\"") 
'[{"id": 2, "name": "squats", "wrs": [["55", 9]]}]' 

ノートは"は、文字列、いないの一部の一部であると考えていますjsonの書式設定。

import json 
json.dumps(json.load(str_w_quotes)) 

はあなたを与える必要があります。

[{"id": 2, "name": "squats", "wrs": [["55", 9]]}] 
5

json.dumpsこれを行うことができ

[{"id": 2, "name": "squats", "wrs": [["55", 9]]}] 
+0

このことをしない確認したときに、同様の結果を持っていた出てきます動作しません! – vikki

+0

'json.loads'は、文字列のためのトリックを行う必要があります。 –

+0

それは' json.loads(json.dumps(str_w_quotes)) ' – webjunkie

9

これは動作しますが、私のために絶対に罰金

import json 
json.dumps(json.JSONDecoder().decode(str_w_quotes)) 
1

手順は、作品を言及した、あまりにもエレガントないないようです:

>>> import ast 
>>> str_w_quotes = ast.literal_eval(my_str) 
>>> str_w_quotes 
[{u'id': 2, u'name': u'squats', u'wrs': [[u'99', 8]]}] 
>>> import json 
>>> json.dumps(str_w_quotes) 
'[{"id": 2, "name": "squats", "wrs": [["99", 8]]}]' 

json.dumpsは期待通りの結果を返します私は `返しjson.dumps`パイソン2.7

+0

なぜあなたはその2歳の質問への答えを追加しているべきです尋ねられた質問に答えることさえできませんか?これは実際にはたいていのコメントでなければなりません。 – Craicerjack

関連する問題