Ответ 1
Добавить ключ, значение пары в словарь
aDict = {}
aDict[key] = value
Что вы подразумеваете под динамическим добавлением.
Как добавить ключ, значение пары в словарь?. Ниже я упомянул следующий формат?
{'1_somemessage': [[3L,
1L,
u'AAA',
1689544L,
datetime.datetime(2010, 9, 21, 22, 30),
u'gffggf'],
[3L,
1L,
u'BBB',
1689544L,
datetime.datetime(2010, 9, 21, 20, 30),
u'ffgffgfg'],
[3L,
1L,
u'CCC',
1689544L,
datetime.datetime(2010, 9, 21, 22, 30),
u'hjhjhjhj'],
[3L,
1L,
u'DDD',
1689544L,
datetime.datetime(2010, 9, 21, 21, 45),
u'jhhjjh']],
'2_somemessage': [[4L,
1L,
u'AAA',
1689544L,
datetime.datetime(2010, 9, 21, 22, 30),
u'gffggf'],
[4L,
1L,
u'BBB',
1689544L,
datetime.datetime(2010, 9, 21, 20, 30),
u'ffgffgfg'],
[4L,
1L,
u'CCC',
1689544L,
datetime.datetime(2010, 9, 21, 22, 30),
u'hjhjhjhj'],
[4L,
1L,
u'DDD',
1689544L,
datetime.datetime(2010, 9, 21, 21, 45),
u'jhhjjh']]}
Добавить ключ, значение пары в словарь
aDict = {}
aDict[key] = value
Что вы подразумеваете под динамическим добавлением.
Я нашел здесь способ добавить пару ключей/значений в группу - в моем случае это был выход вызова функции, поэтому добавление пары с помощью dictionary[key] = value
потребовало бы, чтобы я знал имя ключа (ов).
В этом случае вы можете использовать метод обновления:
dictionary.update(function_that_returns_a_dict(*args, **kwargs)))
Остерегайтесь, если dictionary
уже содержит один из ключей, исходное значение будет перезаписано.
Для быстрой справки все следующие методы добавят новый ключ 'a', если он еще не существует, или обновит существующую пару значений ключа с новым предложенным значением:
data['a']=1
data.update({'a':1})
data.update(dict(a=1))
data.update(a=1)
Вы также можете их смешать, например, если ключ "c" находится в данных, но "d" не указан, следующий метод обновит "c" и добавит "d"
data.update({'c':3,'d':4})
Я не уверен, что вы подразумеваете под "динамикой". Если вы имеете в виду добавление элементов в словарь во время выполнения, это так же просто, как dictionary[key] = value
.
Если вы хотите создать словарь с ключом, значение для начала (во время компиляции), используйте (сюрприз!)
dictionary[key] = value
Если вы хотите добавить новую запись в форму
newRecord = [4L, 1L, u'DDD', 1689544L, datetime.datetime(2010, 9, 21, 21, 45), u'jhhjjh']
to messageName
где messageName
в форме X_somemessage
может, но не обязательно находиться в вашем словаре, а затем делать это следующим образом:
myDict.setdefault(messageName, []).append(newRecord)
Таким образом он будет добавлен к существующему messageName
, или новый список будет создан для нового messageName
.
Может быть, это тоже будет полезно
import collections
#Write you select statement here and other things to fetch the data.
if rows:
JArray = []
for row in rows:
JArray2 = collections.OrderedDict()
JArray2["id"]= str(row['id'])
JArray2["Name"]= row['catagoryname']
JArray.append(JArray2)
return json.dumps(JArray)