Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何将“无”值替换为“无”;无”;字符串值_Python 3.x - Fatal编程技术网

Python 3.x 如何将“无”值替换为“无”;无”;字符串值

Python 3.x 如何将“无”值替换为“无”;无”;字符串值,python-3.x,Python 3.x,我有一个文本文件,我正试图写入一个JSON文件。有些值返回为None,True或False。我需要用“None”(字符串)替换None,用“True”替换True,用“False”替换False 我试着加了一行 data=data.replace(None,"None") 然而,我得到了一个错误 Traceback (most recent call last): File "parse_get_drivers.py", line 17, in <module> dat

我有一个文本文件,我正试图写入一个JSON文件。有些值返回为None,True或False。我需要用“None”(字符串)替换None,用“True”替换True,用“False”替换False

我试着加了一行

data=data.replace(None,"None")
然而,我得到了一个错误

Traceback (most recent call last):
  File "parse_get_drivers.py", line 17, in <module>
    data=data.replace(None,"None")
TypeError: replace() argument 1 must be str, not None

所需的结果是将None、True和False值替换为“None”、“True”和“False”。

您应该将输入解析为JSON,而不是将其作为单独的字符串逐行解析,这样您就可以递归地遍历数据结构,将
None
(或者用JSON的术语,
null
)替换为
“None”

以便:

import json
d = json.loads('{"a": 1, "b": [1, null], "c": {"d": null}}')
print(d)
replace(d, None, 'None')
print(d)
print(json.dumps(d))
产出:

{'a': 1, 'b': [1, None], 'c': {'d': None}}
{'a': 1, 'b': [1, 'None'], 'c': {'d': 'None'}}
{"a": 1, "b": [1, "None"], "c": {"d": "None"}}

这毫无意义。使用
json.loads
,尤其是在没有加载json的情况下,
True
/
False
/
None
应该已经是字符串值。
import json
d = json.loads('{"a": 1, "b": [1, null], "c": {"d": null}}')
print(d)
replace(d, None, 'None')
print(d)
print(json.dumps(d))
{'a': 1, 'b': [1, None], 'c': {'d': None}}
{'a': 1, 'b': [1, 'None'], 'c': {'d': 'None'}}
{"a": 1, "b": [1, "None"], "c": {"d": "None"}}