penggantian ungkapan biasa python
淡淡烟草味
淡淡烟草味 2017-05-18 10:58:52
0
2
577

Saya baru-baru ini menghadapi masalah dengan penggantian ekspresi biasa

Setiap data dalam data masa didahului oleh [0]= [1]= [2]= [3]= indeks ini:

["time"]={[0]={["status"]=true,["ac"]=1,["bg"]=2},[1]={["status"]=true,["ac"]=1,["bg"]=2},[2]={["status"]=true,["ac"]=1,["bg"]=2},}

Disebabkan beberapa sebab, indeks sebelumnya hilang dan hanya boleh ditambah menggunakan ungkapan biasa Masalahnya ialah jumlah data dalam masa berbeza

["time"]={{["status"]=true,["ac"]=1,["bg"]=2},}
["time"]={{["status"]=true,["ac"]=1,["bg"]=2},{["status"]=true,["ac"]=1,["bg"]=2},}
["time"]={{["status"]=true,["ac"]=1,["bg"]=2},{["status"]=true,["ac"]=1,["bg"]=2},{["status"]=true,["ac"]=1,["bg"]=2},}

Adakah terdapat cara untuk menambah urutan [0]= [1]= [2]= [3]=

secara automatik

Ditambah:

Data yang salah digabungkan, dan susunan data dalam masa tidak sama, seperti berikut:

["time1"]={{["status"]=true,["ac"]=1,["bg"]=2},},["time2"]={{["status"]=true,["ac"]=1,["bg"]=2},{["status"]=true,["ac"]=1,["bg"]=2},},["time3"]={{["status"]=true,["ac"]=1,["bg"]=2},{["status"]=true,["ac"]=1,["bg"]=2},{["status"]=true,["ac"]=1,["bg"]=2},}

Nak tukar kepada:

["time1"]={[0]={["status"]=true,["ac"]=1,["bg"]=2},},["time2"]={[0]={["status"]=true,["ac"]=1,["bg"]=2},[1]={["status"]=true,["ac"]=1,["bg"]=2},},["time3"]={[0]={["status"]=true,["ac"]=1,["bg"]=2},[1]={["status"]=true,["ac"]=1,["bg"]=2},[2]={["status"]=true,["ac"]=1,["bg"]=2},}
淡淡烟草味
淡淡烟草味

membalas semua(2)
黄舟
>>> import re
>>> s='["time"]={{["status"]=true,["ac"]=1,["bg"]=2},{["status"]=true,["ac"]=1,["bg"]=2},{["status"]=true,["ac"]=1,["bg"]=2},}'
>>> n=0
>>> def repl(m):
    global n
    rslt='[%d]=%s'%(n,m.group(0))
    n+=1
    return rslt

>>> p=re.compile(r'\{[^{}]+\},')
>>> p.sub(repl,s)
'["time"]={[0]={["status"]=true,["ac"]=1,["bg"]=2},[1]={["status"]=true,["ac"]=1,["bg"]=2},[2]={["status"]=true,["ac"]=1,["bg"]=2},}'
曾经蜡笔没有小新
i = 0
def func(x):
    global i
    s = '[%d]=%s' % (i,x)
    i += 1
    return s 
import re
a = '["time"]={{["status"]=true,["ac"]=1,["bg"]=2},{["status"]=true,["ac"]=1,["bg"]=2},}'
print re.sub('\{\["status"',lambda m:func(m.group(0)),a)

Ia tidak ditulis dengan baik, ia lucu

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan