検索

ホームページ  >  に質問  >  本文

python - 使用json.loads,key不带引号,且value中可能含有“:”,如何最好地处理?

例如:

'''{
    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方屏)"

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

怪我咯怪我咯2884日前861

全員に返信(4)返信します

  • PHP中文网

    PHP中文网2017-04-18 09:18:41

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

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:18:41

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

    リーリー

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:18:41

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

    リーリー

    または行頭と一致

    リーリー

    返事
    0
  • PHPz

    PHPz2017-04-18 09:18:41

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

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

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

    と呼びます。

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

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

    返事
    0
  • キャンセル返事