在Python中输出布尔值是否有最佳实践?我正在生成一些JSON(通过Django模板),默认情况下,所有布尔值都以大写字母开头输出,与JSON标准相反(即,“True”而不是“true”)。
目前,我使用str.lower()格式化每个布尔字符串,但是否有更好的方法?
那么,使用json
将其序列化为JSON,而不是使用一些自定义的东西。
import json
print json.dumps({'foo': True}) # => {"foo": true}
import json
def my_view(request):
# ...
json_d = dict(...)
return json.dumps(json_d)
我更喜欢编写装饰器并返回一个字典。
def json_view(f):
def wrapped_f(*args, **kwargs):
return json.dumps(f(*args, **kwargs))
wrapped_f.original = f # for unit testing
return wrapped_f
@json_view
my_view(request):
# ...
return dict(...)
import json
。在旧版本的Python中,您需要pip install simplejson
和import simplejson as json
。bool
值只是开始。例如,如何正确转义带有嵌套引号的字符串?simplejson
模块,如果json
模块可用,则会透明地使用它。只需导入它,您就可以获得最佳可用选项:from django.utils import simplejson
或from django.utils import simplejson as json
。 - Armando Pérez Marqués