我有一个具有键值对的JSON文件。目前,我使用python内置的Replace((函数将空格替换为下划线,但它也将值中的空格替换为划线。我只想替换键中的空格,值应该保持不变。这是我使用的python函数
string=string.replace(" ","_")
我所做的假设是,首先将Json字符串转换为字典。然后:
要做到这一点,最具Python风格的(惯用、最清晰、高效(方法是使用词典理解:
d = {"key 1": "Value 1", "key 2": "value 2"}
new_d = {k.replace(" ", "_"): v for k, v in d.items()}
print(new_d)
打印:
{'key_1': 'Value 1', 'key_2': 'value 2'}
d.items()
迭代字典的所有键/值对作为上面代码中的变量k
和v
,并且在k
中用下划线替换空格之后,从这些k
和v
对创建新的字典。
然后,您可以将字典转换回Json字符串。
您不能更改键。您可以添加修改后的键值对,然后删除旧的键值对。
假设你有一本字典如下:
{'x c': 'z c'}
您可以编写以下脚本来替换密钥中的空白:
x = {"x c":"z c"}
for key,value in x.iteritems():
new_key = key.replace(" ","_")
del x[key] # Deleting Previous Key
x[new_key] = value # Adding Modified key
输出:
{'x_c': 'z c'}
希望这能帮助你