开发者社区 问答 正文

为什么从会话中检索整数字典键作为字符串?

在下面的代码中,为什么在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

展开
收起
kun坤 2019-12-25 09:58:15 370 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 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)

    2019-12-25 11:22:03 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址: