开发者社区> 问答> 正文

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

在下面的代码中,为什么在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 341 0
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
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载