在 Python 中编辑 javascript 文件时出现问题
Problem editing javascript file in Python
我正在 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: "none"
和i: "garson2"
之间的项也是可变的。
您可以为此使用积极的前瞻断言并使用 re.sub()
来替换。
r: "none"(?=[^{}]+i: "garson2")
例子
import re
text="""
"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
}
"""
print(re.sub(r'r: "none"(?=[^{}]+i: "garson2")','r: "inline"',text))
输出
"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")')
with open('static/js/cafeproje_hype_generated_script.js') as f:
contents = f.read()
contents = r.sub(r'r: "none"(?=[^{}]+i: "garson2")','r: "inline"',contents)
with open('static/js/cafeproje_hype_generated_script.js', 'w') as f:
f.write(contents)
return print ("Garson Ekleme İşlemi Tamam\n\nEklenen Garson İsmi:\t{}\nEklenen Garson Sırası:\t{}".format(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
我正在 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: "none"
和i: "garson2"
之间的项也是可变的。
您可以为此使用积极的前瞻断言并使用 re.sub()
来替换。
r: "none"(?=[^{}]+i: "garson2")
例子
import re
text="""
"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
}
"""
print(re.sub(r'r: "none"(?=[^{}]+i: "garson2")','r: "inline"',text))
输出
"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")')
with open('static/js/cafeproje_hype_generated_script.js') as f:
contents = f.read()
contents = r.sub(r'r: "none"(?=[^{}]+i: "garson2")','r: "inline"',contents)
with open('static/js/cafeproje_hype_generated_script.js', 'w') as f:
f.write(contents)
return print ("Garson Ekleme İşlemi Tamam\n\nEklenen Garson İsmi:\t{}\nEklenen Garson Sırası:\t{}".format(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