Rumah > Soal Jawab > teks badan
例如:
'''{
colorSize: [{
"Color": "超窄边IPS",
"SkuId": 1365289,
"Size": "27英寸"
}, {
"Color": "21:9超宽IPS曲面",
"SkuId": 1742140,
"Size": "29英寸"
}, {
"Color": "17英寸(TN,5:4方屏)",
"SkuId": 1032147,
"Size": "17英寸"
}],
warestatus: 1,
shangjiazizhi: false
}'''
为了给key加双引号,必需先选中之
因为内容带有“:”,
(\w+):
,误处理"21:9超宽IPS曲面"
[{,]\s*(\w+):
,误处理"17英寸(TN,5:4方屏)"
有什么比较好的处理方法呢?
天蓬老师2017-04-18 09:18:41
Dua penyelesaian
Seorang menggunakan demjson seperti yang @raidou katakan
Seorang lagi menggunakan pyexecjs
Muat naik kod
import execjs
import demjson
str = '''
{
colorSize: [{
"Color": "超窄边IPS",
"SkuId": 1365289,
"Size": "27英寸"
}, {
"Color": "21:9超宽IPS曲面",
"SkuId": 1742140,
"Size": "29英寸"
}, {
"Color": "17英寸(TN,5:4方屏)",
"SkuId": 1032147,
"Size": "17英寸"
}],
warestatus: 1,
shangjiazizhi: false
}
'''
print demjson.decode(str)
print execjs.eval(str)
天蓬老师2017-04-18 09:18:41
Versi mudah alih tidak dapat melihat tajuk penuh, bolehkah anda membalas?
Versi mudah alih belum dapat membalas ulasan lagi, saya jengkel
Kemas kini supaya sepadan dengan ruang di hadapan
\s([^"]+):
atau padankan permulaan baris
^([^"]+):
PHPz2017-04-18 09:18:41
Saya menyelesaikannya sendiri, biar saya ringkaskan:
Perkara yang paling penting ialah nombor :
gila ini mesti muncul dalam berpasangan "
Oleh kerana petikan berganda sentiasa muncul secara berpasangan dan tidak bersilang
Gunakan re.sub untuk menapis pasangan petikan berganda, dan kemudian berikan hasil yang ditapis kepada fungsi untuk diproses: gantikan titik bertindih antara petikan berganda dengan aksara khas , supaya Untuk kemudahan penerangan, saya panggil watak ini 卐
Ganti hasil tanpa kolon kandungan dengan pemprosesan biasa sebelumnya dengan kolon
Kemudian muncul soalan baharu Selepas menambah petikan berganda pada kekunci, jika saya mahu menggantikan 卐
kembali ke :
, apakah watak istimewa yang harus saya pilih untuk 卐
?