今天的Django教训汇总:simplejson将字符串形式的字典转化为字典-20211031

这篇博客探讨了在Python中将字典参数传递给视图时遇到的问题,即字典被转换成了字符串导致无法直接使用。文章通过示例展示了如何使用simplejson库将带有单引号的字符串转换为字典,强调了JSON格式中引号必须为双引号的规则,并提供了错误处理的方法。此外,还讨论了解决方案,包括替换字符串中的单引号为双引号以确保符合JSON规范。
摘要由CSDN通过智能技术生成

通过template传参到view中,template的字典参数变成了字符串。再用字典的方法引用参数就会报错。

  • views.py
    employee_list = Employee.objects.filter(dept_code__startswith=data_dict[0])
    print(type(data_dict))
    print('dept_code:',data_dict[0])
    print(employee_list)

需要将参数重新转化为字典。simplejson

import simplejson
# loads 把字符串转换成字典

#{}里都是双引号,会成功
str_dic = '{"name":"zeropython","age":"testa"}'
new_dic = simplejson.loads(str_dic)

#{}里都是单引号,会报错
str_dic = "{'name':'zeropython','age':'testa'}"
#new_dic = simplejson.loads(str_dic)
#simplejson.errors.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

#{}里都是单引号,需要转化
str_dic = "{'name':'zeropython','age':'testa'}"
str_dic = str_dic.replace('"','|').replace("'",'"').replace('|','"')
new_dic = simplejson.loads(str_dic)
print(type(new_dic))

链接

  • 实际上json格式的引号需要为双引号,否则会报错如下。str_dic = "{‘name’:‘zeropython’,‘age’:‘testa’}"会报错
    在这里插入图片描述
  • 故需要替换单引号为双引号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值