【问题标题】:Python parse data with regular expressions turn into dictionary.Python 用正则表达式解析数据变成字典。
【发布时间】:2016-01-08 07:46:46
【问题描述】:

我有一串数据。我想把它变成一个 字典

ff = '{wrapper:{one:{now:""},up:"north",down:"south"}}'

请注意,键不是用 ' 或 " 包装的文本。正则表达式可以帮助做到这一点吗?新文本应该如下所示。如果 pandas 可以做到这一点,我可以 使用熊猫。

ff = '{"wrapper":{"one":{"now":""},"up":"north","down":"south"}}' 

【问题讨论】:

    标签: python regex python-2.7 dictionary pandas


    【解决方案1】:

    使用环视:

    (?<={).*?(?=:)
    

    在哪里

    (?<={)    - match { before
    .*?       - non greedy
    (?=:)    - match : after
    

    所以在代码中它会是..

    import re
    import json
    
    str = '{wrapper:{one:{now:""},up:"north",down:"south"}}'
    str = re.sub('(?<=[{,])(.*?)(?=:)', r'"\1"', str)
    jsonobj = json.loads(str)
    print jsonobj
    

    【讨论】:

      【解决方案2】:

      (?!") - 负面展望。

      def st_to_dict(st):
          import re
          return re.sub(r'(\b[^:"]+\b)(?!")',r'"\1"',st)
      
      ff = '{wrapper:{one:{now:""},up:"north",down:"south"}}'
      
      print(st_to_dict(ff))
      

      输出:

      {"wrapper":{"one":{"now":""},"up":"north","down":"south"}}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-10
        • 2014-12-21
        • 2010-10-23
        • 2020-08-08
        • 2014-08-12
        • 1970-01-01
        • 2011-06-05
        • 2012-09-12
        相关资源
        最近更新 更多