Python 3.x 如何将“无”值替换为“无”;无”;字符串值
我有一个文本文件,我正试图写入一个JSON文件。有些值返回为None,True或False。我需要用“None”(字符串)替换None,用“True”替换True,用“False”替换False 我试着加了一行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
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"}}