在json文件中反序列化布尔数据类型不能在python中工作

问题描述 投票:1回答:2

我有一个json文件,下面是python 2.7.6中没有解码字符串(“false”)为False的内容(未在python3中测试)

{
  "qps": 30,
  "force_push": "false"
}

下面是代码,它不解码布尔值

import json
res=json.load(open('demo.json'))

res对象应该像{ "qps": 30, "force_push": False}

python json
2个回答
1
投票

您只需要删除json文件中的引号,然后使用json.dumps

{
  "qps": 30,
  "force_push": false
}

在python中:

import json
res=json.load(open('demo.json'))
output = json.dumps(res) # '{"qps": 30, "force_push": false}'

如果你想让false成为生成的json中的一个字符串,你需要在执行False之前显式转换从"false"加载到json.dumps的字典中的值。


0
投票

我通过使用适当的json值解决了这个问题

{
  "qps": 30,
  "force_push": false
}

我指定false,而不是字符串表示法中的“false”。现在反序列化工作。

© www.soinside.com 2019 - 2024. All rights reserved.