在下面的代码中,为什么在session_retrieve视图中以字符串的形式检索people字典的1个键?如何保持原始(整数)类型? 同样,为什么45这个值不会发生同样的情况呢?
def session_add(request):
people = {
1: {
'name': 'Tom',
'age': 45,
}
}
request.session['people'] = people
print(request.session['people'])
# prints {1: {'name': 'Tom', 'age': 45}}
return HttpResponse('added')
def session_retrieve(request):
print(request.session['people'])
# prints {'1': {'name': 'Tom', 'age': 45}}
return HttpResponse('retrieved')
问题来源StackOverflow 地址:/questions/59466647/why-is-an-integer-dictionary-key-retrieved-as-string-from-session
a_list = [{'a': 3}, {'b': 1}, {'c': 5}]
b_list = [{'a': 3}, {'f': 2}, {'d': 4}]
a_list_sort = [{i[0]: i[1]} for i in sorted({j: i[j] for i in a_list for j in i.keys()}.items(), key=lambda a: a[0])] b_list_sort = [{i[0]: i[1]} for i in sorted({j: i[j] for i in b_list for j in i.keys()}.items(), key=lambda a: a[0])]
a_list_sort_key = [] a_list_sort_value = [] b_list_sort_key = [] b_list_sort_value = []
for i in range(len(a_list_sort)): for key, value in a_list_sort[i].items(): a_list_sort_key.append(key) a_list_sort_value.append(value)
for i in range(len(b_list_sort)): for key, value in b_list_sort[i].items(): b_list_sort_key.append(key) b_list_sort_value.append(value)
result_list = []
for j in range(len(a_list_sort_key)): result_dict = {} new_key = a_list_sort_key[j] + b_list_sort_key[j] new_value = a_list_sort_value[j] + b_list_sort_value[j] result_dict[new_key] = new_value result_list.append(result_dict)
print(result_list)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。