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

2024-03-28 21:46:29 发布

您现在位置:Python中文网/ 问答频道 /正文

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

[
{
    "asks" : [
        [
            0.00276477,
            NumberInt(9)
        ],
        [
            0.00276478,
            NumberInt(582)]]

}
]

我想用数字9代替“数字(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')

但它并没有取代我原来的文件。。。有人有主意吗?你知道吗


Tags: 文件testrejsonnumberreaddata数字
2条回答

根据^{}的文档,下面是如何做到这一点的:

with open("test.json") as file: 
    json_data = file.read()
new_json = re.sub("NumberInt\(([0-9]+)\)", r"\1", json_data)

请注意,re.sub()返回字符串的副本,就像内置的^{}方法一样。你知道吗

第一点:use ^{}而不是这里的str.replace()。还要注意,python字符串是不可变的,因此在这两种情况下都必须将字符串重新绑定到函数的结果。你知道吗

第二点:如果您没有自己明确地进行更新,您的文件当然不会被更新—您必须将已更正的字符串写回文件(以写模式重新打开文件)。你知道吗

相关问题 更多 >