2016-11-22 8 views
0

Python辞書がテキストとして格納されているMySQLデータベースに列があります。Python辞書がMySQLにTextとして格納されています

入力:

print(row.optional_items) 
print(type(optional_items)) 

出力:

{'Bed 90,-': '90,00', 'Baby bath': '90,00', 'Child chair': '90,00', 'Fee': '150,00', 'End cleaning' 
: '730,00', 'Linned Kr. 90,-': '90,00'} 
<class 'str'> 

私はPythonの辞書として変数で作業したいと思いますが、Pythonはそれの文字列と考えるので、それは不可能です。私はdict(row.feline_optional_items)を使ってdictに変換しようとしましたが、返すのはValueError: dictionary update sequence element #0 has length 1; 2 is required

row.optional_itemsを辞書に変換する方法はありますか?

誰かが助けてくれることを願っています。ありがとう!

+2

あなたが列に格納されているものの上に任意のコントロールを持っている場合、それはJSONとして、このデータを保存するために、おそらく多くの方が良いでしょうこれは標準形式であり、他の言語でもデータを簡単に読み取ることができるためです。 –

+0

データベースを正規化し、属性値テーブルを使用して各辞書要素を別々の行に格納する方が良いでしょう。 – Barmar

答えて

4

あなたがこれを行う、実際の辞書に文字列形式の辞書を変換したい場合:

from ast import literal_eval 
dict_str = "{'a': 1}" 
dict_dict = literal_eval(dict_str) 
+4

eval()は危険であるため、eval()よりもliteral_eval()の使用を強調する必要があります。 – rstif350

+0

ありがとう!魅力的な作品! – Wessi

関連する問題