用“数组”中的另一个字符串替换一个字符串

时间:2018-12-13 08:57:38

标签: python regex

到目前为止,我的文件如下:

[
{
    "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')

但是它不能代替我的原始文件...有人有主意吗?

2 个答案:

答案 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字符串是不可变的,因此在两种情况下,您都必须将字符串重新绑定到函数的结果。

第二点:如果您未明确自己做的话,您的文件当然不会更新-您必须将更正的字符串写回到文件中(以写模式重新打开文件)。