到目前为止,我的文件如下:
[
{
"asks" : [
[
0.00276477,
NumberInt(9)
],
[
0.00276478,
NumberInt(582)]]
}
]
我想用数字9代替“ NumberInt(9)”。
到目前为止我尝试过的内容如下:
json_data=open("test.json").read()
number = re.findall("NumberInt\(([0-9]+)\)", json_data)
Nint = re.findall("(Nu.*)", json_data)
json_data.replace('Nint', 'number')
但是它不能代替我的原始文件...有人有主意吗?
答案 0 :(得分:1)
根据re.sub()
的文档,这是操作方法:
with open("test.json") as file:
json_data = file.read()
new_json = re.sub("NumberInt\(([0-9]+)\)", r"\1", json_data)
请注意,re.sub()
返回字符串的副本,就像内置的str.replace()
方法一样。
答案 1 :(得分:0)
第一点:use re.sub()
,而不是str.replace()
。另外请注意,python字符串是不可变的,因此在两种情况下,您都必须将字符串重新绑定到函数的结果。
第二点:如果您未明确自己做的话,您的文件当然不会更新-您必须将更正的字符串写回到文件中(以写模式重新打开文件)。