【问题标题】:How to convert String to Json using Regex?如何使用正则表达式将字符串转换为 Json?
【发布时间】:2019-12-20 10:42:30
【问题描述】:

我一直在尝试弄清楚如何使用正则表达式将字符串转换为 json。

我试图抓取的是值 items 并将其转换为 json:

{
  'submitId': 'commodity-show-submit',
  'params': [
    [
      'color',
      'COLOUR'
    ],
    [
      'items',
      'Select items'
    ]
  ],
  'items': {
    "48924": {
      "params": [
        "black",
        "US 10"
      ]
    },
    "48925": {
      "params": [
        "black",
        "US 10.5"
      ]
    },
    "48926": {
      "params": [
        "black",
        "US 11"
      ]
    }
  },
  'pids': [
    48924,

  ],
  'items': [
    'Banana',
  ],
  'cartId': '.common-cart',
  'imgId': '',
  'onInvalid': function(){
    message("Please select a variant: %s.")

而且我对正则表达式了解不多,但我试图挑战自己,我认为我完全不在这个区域。它只抓取了第一个项目对象。

r"'items': (.+?)}"

基本上我要做的就是将此部分转换为json

'items': {
    "48924": {
      "params": [
        "black",
        "US 10"
      ]
    },
    "48925": {
      "params": [
        "black",
        "US 10.5"
      ]
    },
    "48926": {
      "params": [
        "black",
        "US 11"
      ]
    }
  }

最好的方法是什么?

【问题讨论】:

  • 使用正则表达式是否有硬性要求?为什么不使用可用的 JSON 解析器?
  • 因为我相信 JSON 解析器不会工作,因为它以 'onInvalid': function(){ message("Please select a variant: %s.") 结尾的 json 结尾。 @SergioPulgarin
  • JSON.stringify(obj) 似乎对带有functions 的对象也有效(因为它忽略了它们)。
  • @SergioPulgarin 我相信这是针对 Javascript 的?我正在使用 Python :)
  • 所以我认为你的数据源有问题。在达到这个点之前可以清洗吗?

标签: python json regex


【解决方案1】:

限制使用Regex清理字符串,然后将清理后的字符串放入json。请记住,JSON 规范使用双引号 "

【讨论】:

    猜你喜欢
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 2012-01-28
    • 2022-11-18
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    相关资源
    最近更新 更多