Maison > Questions et réponses > le corps du texte
例如:
'''{
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
Deux solutions
L'une utilise demjson comme @raidou l'a dit
L'autre utilise pyexecjs
Téléchargez le code
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
La version mobile ne voit pas le titre complet, pouvez-vous répondre ?
La version mobile ne peut pas encore répondre aux commentaires, je suis ennuyé
Mettez-la à jour pour qu'elle corresponde à un espace devant
\s([^"]+):
ou faire correspondre un début de ligne
^([^"]+):
PHPz2017-04-18 09:18:41
Je l'ai résolu moi-même, laissez-moi le dire simplement :
Le plus important est que ces nombres :
fous doivent apparaître par paires "
Parce que les guillemets doubles apparaissent toujours par paires et ne se croisent pas
Utilisez re.sub pour filtrer les paires de guillemets doubles, puis donnez les résultats filtrés à la fonction pour traitement : remplacez les deux points entre les guillemets doubles par des caractères spéciaux , afin de faciliter la description, j'appelle ce personnage 卐
Remplacez le résultat sans contenu deux-points par le traitement régulier précédent avec deux-points
Ensuite, voici une nouvelle question. Après avoir ajouté des guillemets doubles à la clé, si je veux remplacer 卐
par :
, quel caractère spécial dois-je choisir pour 卐
?