2017-08-31 97 views
0

我有一个JSON,我想获取一些信息。 使用美丽和正则表达式。如何通过正则表达式在脚本中获取json中的信息?

<script charset="gbk"> 
    var pageConfig = { 
     compatible: true, 
     product: { 
      modules: [ 
       'address', 
       'prom', 
       'colorsize', 
       'buytype', 
       'baitiao', 
       'summary', 
       'o2o', 
       'buybtn', 
       'track', 
       'suits', 
       'crumb', 
       'fittings', 
       'detail', 
       'contact', 
       'popbox', 
       'preview', 
       'info', 
       'imcenter', 
       'jdservice', 
       'commitments', 
       'gift', 
       'popupCar' 
      ], 
        skuid: 11157027932,         
        cat: [670,671,672], 
        commentVersion:'888',   
        twoColumn: false,     
        isFeeType: true,   
        isCloseLoop:true,         
        isBookMvd4Baby: false,  
        addComments:true, 
        mainSkuId:'10122299306',   
        foot: '//dx.3.cn/footer?type=common_config2', 
        shangjiazizhi: false  } 
    }; 
          try { 
        function is_sort_black_list() { 
      var jump_sort_list = {"6881":3,"1195":3,"10011":3,"6980":3,"12360":3}; 
      if(jump_sort_list['670'] == 1 || jump_sort_list['671']==2 || jump_sort_list['672']==3) { 
      return false; 
      } 
      return false; 
     } 


</script> 

我想在这个JSON中获得像“猫”和“VenderID”,我怎样才能得到这些正则表达式? 我需要的信息[670671672]和skuid:11157027932

+0

你有任何代码,你试图解决这个问题吗? – davedwards

+0

欢迎来到SO。这不是一个代码写入服务。您需要表现出一些努力,并针对具体问题询问具体问题,以显示您已经提出的问题。 –

+0

我在下面试过的代码。 –

回答

0
skuid: (\d+) 

将获得第一个捕捉组skuid的价值,看到了regex demo

cat: ([\[\d,\]]+), 

将在第一时间拿到猫的价值捕获组,看到regex demo

+0

对不起,你能告诉我你使用哪个功能吗?我使用_a = re.search(r“cat:([\ [\ d,\]] +),”,jsonstr)但不返回 –

0

我用BS4拿到这个剧本的汤,

 for ss in thissoup.find_all('script')[0:1]: 
     print ss 

ss是脚本。

 m = re.search(r"(?s)var\s+pageConfig\s*=\s*(\{.*?\});", ss) 
     print m.group(1) 

比我想用这个,但是发生了错误。 我想得到一个obj,我可以得到像猫= Obj [“猫”]的信息