python获取不能直接得到的数据信息,以及对json数据的处理和提取(对post请求内容的处理)

**

python获取不能直接得到的数据信息,以及对json数据的处理和提取(对post请求内容的处理)

**

前言:

环境:windows的python3.5

因为音频,视频数据都是不显示出来的数据,所以一开始决定,直接用phantom来获取数据的,但是后来发现,phantomjs通过与实际浏览器比较,可以发现css js图片的url都能截获到,但是对于vedio和audio加载的资源是无法获取到的

需要传送各种不同的编解码器。 ----不会传(估计是麻烦,有其他的更方便的方法,没有人写过类似的)

所以想要,嗯,,其他的selenium也使用了,估计可以使用,但是我不会。。。。。

所以最后决定使用抓包来分析json等等的数据先

但是发现有的json数据比较简单,很快就能获取到信息,而有一些就比较深了,套中套,于是又卡在这json数据的提取中了

嗯。。还有一点,我的这个json数据文件是一个post,不能直接通过地址来提取,所以就得自己提了
因为不能直接读取,所以我还把它复制出来单独成为一个json文件,读取来使用

下面是一些提取的方法,废话不多说

json.load()	#用于从json文件中读取数据

从json文件中读取数据

with open("test_json.json", mode='r', encoding='utf-8') as fp:
    load_dict = json.load(fp)
    print("读取出的数据为:{}".format(load_dict))

#就是把json数据变成python可以编辑的数据
#取出该字典所有的值: 
value_list = my_dict.values() #返回的是列表

在python2环境中这方法返回的是列表,但是在python3环境下返回的却是迭代器,要通过list()方法将其先转化为列表,再进行取值.相对应的是key

#自带方法 
items() 
#可以同时取出键与值

取值的时候因为每个值的类型不尽相同,所以有时候是可以取出值,有时候又报错了(类型不对)

后来才发现的
字典和集合都是无序的。
字典是键值对的集合,键值对之间是无序的;集合类型是无序的,其中的每一个元素都是唯一的,不存在相同的元素。
以下两张图片各不相同
在这里插入图片描述
在这里插入图片描述
确保有序

import json
import collections
with open(',,,.json',mode="r",encoding="utf-8") as fp:  	#,,,是json文件路径 
    load_dict=json.load(fp)
    load_dict=sorted(load_dict.items())						#排序
    load_dict=collections.OrderedDict(load_dict)			#确定
    
    #print(type(load_dict))
    #print(len(load_dict))
    value_list = load_dict.values()
    listdata=list(value_list)    #返回所有的值构成的列表

如下2图
在这里插入图片描述
在这里插入图片描述
还有一些比较快的方法可以提取,但是我刚开始没成功提出来,之后试试,这只适合于提层数少的,哈哈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

略略略气气你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值