SQL Resultset (список Python) в словарь - PullRequest
0 голосов
/ 04 ноября 2019

Как преобразовать список в словарь. У меня есть данные, хранящиеся в БД (sqllite) в виде одной строки, и они отформатированы как Python словарь, ключ: значение пары. Данные выглядят следующим образом. "CashVal":"10000.00", "UID":"user01@test.net", "UPWD":"user01#password", "MaxSlots":"7", "MaxSlotsToFill":"5", "MinDollar":"1000"

если я распечатываю набор результатов, это то, что я получаю

(u'"CashVal":"10000.00", "UID":"user01@test.net", "UPWD":"user01#password", "MaxSlots":"7", "MaxSlotsToFill":"5", "MinDollar":"1000"',)

, когда я запрашиваю его, возвращаемый результат представляет собой «список» - какя могу преобразовать этот список в словарь? Я попытался с помощью dict.fromKeys ()

Как можно / нужно преобразовать список / набор результатов в словарь пары ключ / значение.

РЕДАКТИРОВАТЬ (добавление кодаобразец и вывод)

sql_stmt = "select value from configs where key = 'base_configs'"
rows = execute_sql_return_results(sql_stmt)
print (rows)
print (rows[0])
print (rows[0][0])
s_dict={str(rows[0][0])}
print (s_dict)
print (s_dict["UID"])

exit()

[(u '"CashVal": 10000.00, "UID": "user01@test.net", "UPWD": "user01 # password", "MaxSlots": 7, "MaxSlotsToFill": 5, "MinDollar": 1000 ',)]

(u "CashVal": 10000.00, "UID": "user01@test.net", "UPWD ":" user01 # пароль "," MaxSlots ": 7," MaxSlotsToFill ": 5," MinDollar ": 1000 ',)

" CashVal ": 10000.00," UID ":" user01 @ test. net "," UPWD ":" user01 # password "," MaxSlots ": 7," MaxSlotsToFill ": 5," MinDollar ": 1000

set (['" CashVal ": 10000.00," UID ":"user01@test.net", "UPWD": "user01 # пароль", "MaxSlots": 7, "MaxSlotsToFill": 5, "MinDollar": 1000 '])

Traceback (последний последний вызов): Файл "gp_model_trader.py", строка 283, в печати (s_dict ["UID"]) TypeError: объект 'set' не имеет атрибута ' getitem '

1 Ответ

0 голосов
/ 04 ноября 2019

Как уже упоминалось в комментарии, вам нужно взять строку и обернуть { и } вокруг нее, чтобы она теперь выглядела как Json представление словаря. Теперь его можно преобразовать из строки Json обратно в словарь, используя json.loads:

import json

s = u'"CashVal":"10000.00", "UID":"user01@test.net", "UPWD":"user01#password", "MaxSlots":"7", "MaxSlotsToFill":"5", "MinDollar":"1000"'
d = json.loads('{' + s + '}')

Похоже, вы работаете с Python 2. В итоге вы получите словарь, ключи и значения которого unicode строк. Если вы хотите, чтобы они были str типов, ключи и значения можно преобразовать с помощью словаря:

d = {str(k): str(v) for k, v in d.items()}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...