python - 使用json.loads,key不带引号,且value中可能含有“:”,如何最好地处理?
怪我咯
怪我咯 2017-04-18 09:16:41
0
4
794

例如:

'''{
    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加双引号,必需先选中之
因为内容带有“:”,

  1. (\w+):,误处理"21:9超宽IPS曲面"

  2. [{,]\s*(\w+):,误处理"17英寸(TN,5:4方屏)"

有什么比较好的处理方法呢?

怪我咯
怪我咯

走同样的路,发现不同的人生

全員に返信(4)
洪涛

使用できますdemjson https://github.com/dmeranda/d...

いいねを押す +0
Peter_Zhu

2 つの解決策
1 つは @raidou が言ったように demjson を使用します
もう 1 つは pyexecjs を使用します
コードをアップロードします

リーリー
いいねを押す +0
Peter_Zhu

モバイル版では完全なタイトルが表示されません。返信できますか?
モバイル版ではまだコメントに返信できません。イライラしています
先頭のスペースに合わせて更新してください

リーリー

または行頭と一致

リーリー
いいねを押す +0
PHPzhong

私はそれを自分で解決しました。簡単に言ってみましょう:
最も重要なことは、これらのクレイジーな : の数字がペアの "

で出現する必要があるということです。

二重引用符は常にペアで表示され、交差しないため
re.sub を使用して二重引用符のペアをフィルターし、フィルターされた結果を関数に渡して処理します。二重引用符の間のコロンを特殊文字に置き換えます。説明の便宜上、この文字を

と呼びます。

コンテンツのコロンなしの結果を、コロン付きの以前の通常の処理に置き換えます

次に、キーに二重引用符を追加した後、: に戻したい場合、 にはどの特殊文字を選択すればよいでしょうか。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!