1

ネストされた辞書のリストを MySQL に保存する必要があります。私が見る唯一の方法は、それを文字列に変換してTEXTフィールドに格納することです。課題は、文字列から変換する方法ですか?

例えば:

import json                                                                     

val1 = {"aaa":1}                                                                
val2 = {"bbb":2}                                                                   
val3 = {"ccc":3}                                                                   

values = [                                                                         
          json.dumps(val1),                                                        
          json.dumps(val2),                                                        
          json.dumps(val3),                                                        
]                                                                                  

values_str = str(values)                                                           

values_str                                                                         
#'[\'{"aaa": 1}\', \'{"bbb": 2}\', \'{"ccc": 3}\']' 

これでMySQLに安全に保存できますが、元の形状に戻す方法.

使用してみ.split()ましたが、正しく分割されていません。また、私は,辞書に含めていませんが、それらはそこにあるので、唾を吐くこと,はオプションではありません

4

2 に答える 2

2

pickle モジュールを試してみてください。オブジェクトを文字列にシリアライズしてから、元のオブジェクトに戻すことができます。

import pickle

val1 = {"aaa":1}                                                                
val2 = {"bbb":2}                                                                   
val3 = {"ccc":3} 
a = pickle.dumps((val1,val2,val3)) # pickle the objects
# "((dp0\nS'aaa'\np1\nI1\ns(dp2\nS'bbb'\np3\nI2\ns(dp4\nS'ccc'\np5\nI3\nstp6\n."

# store in sql database as string

b = pickle.loads(a) # get original objects
# ({'aaa': 1}, {'bbb': 2}, {'ccc': 3})
于 2013-10-29T16:42:20.100 に答える