猿问

MySQL行列值格式到python字典

我对 Python(和 Django)比较陌生,并且在 MySQL 数据库中有一些行列值格式的数据


Django 模型“用户参数”:


user_id | param     | value

-----------------------------------

123     | param_1   | xxx

123     | param_2   | yyy

123     | param_3   | zzz

123     | param_4   | aaa

123     | param_5   | bbb

123     | param_6   | xxx

...

...

456     | param_1   | sse

456     | param_2   | aca

456     | param_3   | cce

456     | param_4   | dwe

456     | param_5   | cck

456     | param_6   | aq1

...

...

789     | param_1   | zzz

...

我正在尝试将 MySQL 中的这些数据按以下格式放入字典中:


users = {

    123: {'param_1': 'xxx', 'param_2': 'yyy', 'param_3': 'zzz', 'param_4': 'aaa', 'param_5': 'bbb', 'param_6': 'xxx'}, 

    456: {'param_1': 'sse', 'param_2': 'aca', 'param_3': 'cce', 'param_4': 'dwe', 'param_5': 'cck', 'param_6': 'aq1'}, 

    789: {'param_1': 'zzz', .....

}

到目前为止,我已经尝试过


users = {}

users_params = UserParameters.objects.all().values()

for u in users_params:

    users[u['user_id']].add(u['param'], u['value'])

这给了我一个关键错误。知道我做错了什么吗?


至尊宝的传说
浏览 132回答 1
1回答

跃然一笑

对于我认为您正在尝试完成的事情(听起来像嵌套字典或字典字典),您可以尝试以下操作:for u in users_params:    user_id = u['user_id']    if user_id not in users:        users[user_id] = {}    users[user_id][u['param']] = u['value']# For users with key pairs like# {5063: {'wk1_d2_survey_1': 768, 'wk3_d1_survey_2': 781 ...}}
随时随地看视频慕课网APP

相关分类

Python
我要回答