您的位置:首页 > 娱乐 > 八卦 > 团队拓展训练_网商之窗麻将开挂_自己建网站的详细步骤_域名查询 站长查询

团队拓展训练_网商之窗麻将开挂_自己建网站的详细步骤_域名查询 站长查询

2025/10/30 21:26:06 来源:https://blog.csdn.net/dqchouyang/article/details/143429213  浏览:    关键词:团队拓展训练_网商之窗麻将开挂_自己建网站的详细步骤_域名查询 站长查询
团队拓展训练_网商之窗麻将开挂_自己建网站的详细步骤_域名查询 站长查询
  separators=separators
File "/usr/local/lib/python2.7/json/__init__.py", line 250, in dumpssort_keys=sort_keys, **kw).encode(obj)
File "/usr/local/lib/python2.7/json/encoder.py", line 207, in encodechunks = self.iterencode(o, _one_shot=True)
File "/usr/local/lib/python2.7/json/encoder.py", line 270, in iterencodereturn _iterencode(o, 0)
File "/usr/local/lib/python2.7/site-packages/djangorestframework-3.3.3-py2.7.egg/rest_framework/utils/encoders.py", line 64, in defaultreturn super(JSONEncoder, self).default(obj)
File "/usr/local/lib/python2.7/json/encoder.py", line 184, in defaultraise TypeError(repr(o) + " is not JSON serializable")
TypeError: OSError(2, 'No such file or directory') is not JSON serializable

今天遇到一个很好玩的bug,接口程序报错如上,报错原因是数据的类型错误,导致接口无法进行序列化,这个错误数据的类型是OSError,奇怪的是程序里没有引用过这个东西。

原因:
排查接口发现,程序里使用了eval() 函数,这个函数强大而可怕,它把字符串类型的字典值OSError(2, 'No such file or directory') 变成了对象(python 内建对象)类型的字典值,这个值是不能被序列化的,故导致了报错。

解决:
直接把eval()后的字典值强转成string类型,即可完成序列化。

注意:
eval() 方法还是少用,会引起系统漏洞的概率很大。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com