2016-02-22 2 views
0

Мне нужно вставить Dict в базу данных Mysql и получить то же самое.Вставка и выбор проблем python dict

Для этого я обрамлении код, который выглядит следующим образом:

# dict json dumped for inserting to DB 
    final_dict = json.dumps(big_dict) 

    invoice_id = tenant_id 

    # fina_dict exists 
    if final_dict: 

      logging.info("Inserting the necessary details into invoice_details table for tenant %s invoice period (%s to %s) Invoice date - %s" % (tenant_id, begin, end, date)) 
      sql = "INSERT INTO invoice_details(invoice_date, tenant_id, invoice_id, invoice_data, invoice_period_from, invoice_period_to) \ 
          VALUES ('%s', '%s', '%s', '%s', '%s', '%s')" % \ 
          (date, tenant_id, invoice_id, final_dict, begin, end) 

В основном коде выше big_dict является Dict, который мне нужно вставить в к БД.

Так что я выполнил json.dumps в том же самом для того, чтобы вставить то же самое в БД.

Я могу видеть, что он вставлялся в DB по мере необходимости.

invoice_data: {"dict_all_cost_total": "16872.4061451", "dict_total_all": {"c3362ca0-8810-4ab7-a5b2-3cb571815690": ["test_instance", "m1.tiny", "16797.8795147"]}, "dict_inbound": {"c3362ca0-8810-4ab7-a5b2-3cb571815690": ["test_instance", "m1.tiny", "98.6362838745"]}, "dict_volume": "0", "dict_compute": {"c3362ca0-8810-4ab7-a5b2-3cb571815690": ["test_instance", "m1.tiny", "16570.0"]}, "dict_floating": "4.5", "dict_outbound": {"c3362ca0-8810-4ab7-a5b2-3cb571815690": ["test_instance", "m1.tiny", "129.24323082"]}} 

Теперь мне нужно вернуть значения и обработать их.

У меня есть пример кода для получения значений.

данных в data_new:

data1 = json.loads(data) 
    print data1 
    print type(data1) 

    dict_compute = data1['dict_compute'] 

    for dict_computes in dict_compute.iteritems(): 

      for dict_computes_items in dict_computes: 

        print dict_computes_items 

Результат выглядит следующим образом:

<type 'tuple'> 
{u'dict_all_cost_total': u'109776.13801', u'dict_total_all': {u'5477b2b2-91f8-4e4b-a5b0-8f4a32210915': [u'instance_for_demo', u'm1.tiny', u'109776.13801']}, u'dict_inbound': {u'5477b2b2-91f8-4e4b-a5b0-8f4a32210915': [u'instance_for_demo', u'm1.tiny', u'93072.0652571']}, u'dict_volume': u'0', u'dict_compute': {u'5477b2b2-91f8-4e4b-a5b0-8f4a32210915': [u'instance_for_demo', u'm1.tiny', u'16590.0']}, u'dict_floating': u'0', u'dict_outbound': {u'5477b2b2-91f8-4e4b-a5b0-8f4a32210915': [u'instance_for_demo', u'm1.tiny', u'114.072752953']}} 
<type 'dict'> 
5477b2b2-91f8-4e4b-a5b0-8f4a32210915 
[u'instance_for_demo', u'm1.tiny', u'16590.0'] 

Моя цель состоит в том, чтобы получить значения из dict_computes.

instance_for_demo, m1.tiny etc 

ответ

0

Вы должны преобразовать JSON обратно в Словаре структуры:

data_dict = json.loads(dat) 

print(data_dict["dict_floating"]) 
Смежные вопросы