zoukankan      html  css  js  c++  java
  • 反爬虫,非标准的json格式解析

    反爬虫,非标准的json格式解析

    今天写爬虫的时候,发现有一些数据都是通过非标准的 json 格式进行传输的,标准的 json 我们可以将其转化为 Python 中的数据类型,进行查询,但对于一些类似于 json 但又非标准 json 格式的字符,就会比较头疼了。

    例如下面这样

    hxbase_json1({
    list: [
    {Number: "1", StockNameLink: "stock_bg.aspx?code=688008&date=2019-12-31", industry: "澜起科技(688008)"}
    {Number: "2", StockNameLink: "stock_bg.aspx?code=600663&date=2019-12-31", industry: "陆家嘴(600663)"}
    {Number: "3", StockNameLink: "stock_bg.aspx?code=000006&date=2019-12-31", industry: "深振业A(000006)"}]})
    

    看上去格式和 json 很像,但仔细观察会发现,这其中的 key 没有被单引号包裹起来,这就导致了它无法被简单的解析为字典类型。

    自己用正则去重新构建要累死,在网上找到了一个包-demjson`

    pip install demjson

    import demjson
    text='hxbase_json1({list: [
    {Number: "1", StockNameLink: "stock_bg.aspx?code=688008&date=2019-12-31", industry: "澜起科技(688008)"}{Number: "2", StockNameLink: "stock_bg.aspx?code=600663&date=2019-12-31", industry: "陆家嘴(600663)"}
    {Number: "3", StockNameLink: "stock_bg.aspx?code=000006&date=2019-12-31", industry: "深振业A(000006)"}]})'
    #去除多余的干扰字符,变成只有key没有引起来的假json
    t = text[13:-1] 
    data = demjson.decode(t)
    
  • 相关阅读:
    Django 的 CSRF 保护机制
    操作系统下spinlock锁解析、模拟及损耗分析
    .Net中的并行编程-1.路线图(转)
    [leetcode] 小心成环
    [leetcode] 题型整理之图论
    [leetcode] 提醒整理之进制
    [leetcode] 题型整理之二叉树
    [leetcode] 题型整理之查找
    [leetcode] 一些会的
    [leetcode] 题型整理之排序
  • 原文地址:https://www.cnblogs.com/aduner/p/13157999.html
Copyright © 2011-2022 走看看