在Python中编辑javascript文件时出现问题

在Python中编辑javascript文件时出现问题,javascript,python,edit,re,Javascript,Python,Edit,Re,我正在用Python编辑一个javascript文件,我在大多数地方都做过,但我遇到了一个关键点,你能帮我吗 我试图编辑的部分: "589": { p: "no-repeat", c: 97, q: "100% 100%",

我正在用Python编辑一个javascript文件,我在大多数地方都做过,但我遇到了一个关键点,你能帮我吗

我试图编辑的部分:

                    "589": {
                        p: "no-repeat",
                        c: 97,
                        q: "100% 100%",
                        bS: 420,
                        cP: "garson",
                        r: "none",
                        d: 138,
                        cQ: 1,
                        gg: "0",
                        cR: 1,
                        aP: "pointer",
                        h: "553",
                        i: "garson2",
                        bF: "578",
                        aI: 35,
                        j: "absolute",
                        x: "visible",
                        aA: {
                            a: [{
                                d: 1.1,
                                p: 1,
                                g: 1,
                                f: 1
                            }, {
                                p: 4,
                                h: "474"
                            }, {
                                p: 4,
                                h: "476"
                            }]
                        },
                        k: "div",
                        aJ: 35,
                        dB: "img",
                        z: 23,
                        Q: 16,
                        aK: 35,
                        R: "rgba(0, 0, 0, 0.411)",
                        S: 5,
                        a: 140,
                        aL: 35,
                        T: 4,
                        b: 2
                    }

javascript文件中还有更多类似的块<代码>i:“garson2”术语也不是固定的,但我可以得到这个值。使用术语
i:“garson2”
,我想在该术语所在的块中设置
r:“none”
变量
r:“inline”
。我怎么做?注意:
r:“无”
i:“garson2”
之间的术语也是可变的。

对此可以使用积极的前瞻断言,并使用
re.sub()
替换

r:“无”(?=[^{}]+i:“garson2”)

示例

重新导入
text=”“”
"589": {
p:“禁止重复”,
c:97,
q:“100%100%”,
bS:420,
cP:“加森”,
r:“没有”,
d:138,
cQ:1,
gg:“0”,
cR:1,
美联社:“指针”,
h:“553”,
i:“garson2”,
bF:“578”,
aI:35,
j:“绝对”,
x:“可见”,
aA:{
a:[{
d:1.1,
p:1,
g:1,
f:1
}, {
p:4,
h:“474”
}, {
p:4,
h:“476”
}]
},
k:“分区”,
aJ:35,
dB:“img”,
z:23,
问:16,
aK:35,
R:“rgba(0,0,0,0.411)”,
S:5,
a:140,
艾尔:35,
T:4,
b:2
}
"""
打印(re.sub(r'r:“无”(?=[^{}]+i:“garson2”),'r:“内联”,文本))
输出

"589": {
                        p: "no-repeat",
                        c: 97,
                        q: "100% 100%",
                        bS: 420,
                        cP: "garson",
                        r: "inline",
                        d: 138,
                        cQ: 1,
                        gg: "0",
                        cR: 1,
                        aP: "pointer",
                        h: "553",
                        i: "garson2",
                        bF: "578",
                        aI: 35,
                        j: "absolute",
                        x: "visible",
                        aA: {
                            a: [{
                                d: 1.1,
                                p: 1,
                                g: 1,
                                f: 1
                            }, {
                                p: 4,
                                h: "474"
                            }, {
                                p: 4,
                                h: "476"
                            }]
                        },
                        k: "div",
                        aJ: 35,
                        dB: "img",
                        z: 23,
                        Q: 16,
                        aK: 35,
                        R: "rgba(0, 0, 0, 0.411)",
                        S: 5,
                        a: 140,
                        aL: 35,
                        T: 4,
                        b: 2
                    }
r=re.compile(r'r:“none”(?=[^{}]+i:“garson2”))
将open('static/js/cafeproje_hype_generated_script.js')作为f:
contents=f.read()
contents=r.sub(r'r:“无”(?=[^{}]+i:“garson2”),'r:“内联”,contents)
将open('static/js/cafeproje_hype_generated_script.js','w')作为f:
f、 写(内容)
返回打印(“Garson Eklemeİşlemi Tamam\n\nEklenen Garsonİsmi:\t{}\nEklenen Garson Sırası:\t{}”。格式(Garson_isim,Garson_sira))
我试过了,就像你在密码里说的。但我犯了个错误。我很抱歉没有提前写这部分,我想我已经在不知情的情况下延长了解决方案所需的时间

我得到的错误是:

Traceback (most recent call last):
  File "/Volumes/GoogleDrive/Ortak Drive'lar/Arga Tek/Tunahan/Projeler/ProjeCafeDeneme/garsonekle.py", line 7, in <module>
    garsonislem.garson_ekle(garson_sira,garson_isim,res_adr) #garson eklemek için
  File "/Volumes/GoogleDrive/Ortak Drive'lar/Arga Tek/Tunahan/Projeler/ProjeCafeDeneme/garsonislem.py", line 17, in garson_ekle
    res_ekle(garson_sira,garson_isim,res_adr)
  File "/Volumes/GoogleDrive/Ortak Drive'lar/Arga Tek/Tunahan/Projeler/ProjeCafeDeneme/garsonislem.py", line 48, in res_ekle
    gorunur_yap(garson_sira,garson_isim)
  File "/Volumes/GoogleDrive/Ortak Drive'lar/Arga Tek/Tunahan/Projeler/ProjeCafeDeneme/garsonislem.py", line 81, in gorunur_yap
    contents = r.sub(r'r: "none"(?=[^{}]+i: "garson2")','r: "inline"',contents)
TypeError: 'str' object cannot be interpreted as an integer
回溯(最近一次呼叫最后一次):
文件“/Volumes/GoogleDrive/Ortak Drive'lar/Arga-Tek/tunhan/Projeler/ProjeCafeDeneme/garsonekle.py”,第7行,在
garsonislem.garson_ekle(garson_sira,garson_isim,res_adr)#garson Ekleek için
文件“/Volumes/GoogleDrive/Ortak Drive'lar/Arga-Tek/Tunahan/Projeler/ProjeCafeDeneme/garsonislem.py”,第17行,garson_ekle
res_ekle(garson_sira、garson_isim、res_adr)
文件“/Volumes/GoogleDrive/Ortak Drive'lar/Arga-Tek/Tunahan/Projeler/ProjeCafeDeneme/garsonislem.py”,第48行,在resu ekle中
戈鲁努尔·亚普(加森·西拉,加森·伊西姆)
文件“/Volumes/GoogleDrive/Ortak Drive'lar/Arga-Tek/Tunahan/Projeler/ProjeCafeDeneme/garsonislem.py”,第81行,gorunur_yap
contents=r.sub(r'r:“无”(?=[^{}]+i:“garson2”),'r:“内联”,contents)
TypeError:“str”对象不能解释为整数

你说的“我正在用python编辑javascript文件”是什么意思?您正在使用fileio编辑文件???@BigDumb我将使用我开发的程序更改javascript文件中一些非常特定的位置。该系统将是自动的,而不是手动更改。我试图评论我所做的事情和我得到的错误,但它看起来不正确。这就是为什么我写它作为答案。你应该使用
re.sub()
而不是
r.sub()
。这里不需要第一行。你可以用你尝试过的内容更新问题,而不是添加新的答案。