当前分类:python>>正文

jQuery数据如何转换成python字典或者json数据?

来源:互联网   时间:2022年6月15日   编辑

昨天晚上在研究百度下拉框的问题,获取到的数据就是jquery加载出来,就是下面这样的

image

请求地址以及Agent都好搞定,就是这个返回数据有点小麻烦。不过,在自己的琢磨下,也解决了,但是我有种感觉我这个方法并不是最好的,先分享一下吧,如果你有更好的办法,可以向我分享一下。

我主要用正则表达式从中截取的。

从获取的数据来看,有用的数据是在一对中括号内的

image

那么这就好办了,我就直接用正则表达式,取中括号内的内容。

规则如下:

reg='[[](.*)[]]'

之后就得到了一个含有多条字典数据的列表啦,这种数据,又不能用json.loads()方法,也就没办法直接使用。

仔细看了下,这个列表里面是多条字典数据,那要从这个列表中将这些字典数据一条条还原出来,有什么好办法呢?

我于是想到了eval()这个函数,这个可以让字符串运行的函数,可以让它恢复真身。

把处理过的数据,再用这个函数处理一下,顿时清爽了,全成字典数据

像下面这样的

image

这时候,我也不需要转换什么json了,已经是字典数据了,那就直接获取键值就行了呗。相信各位也都会用了。

下面,我将处理过程中的全部代码贴上来,供大家参考

# -*- coding:utf-8 -*-
#! python2
import requests
import re


url='数据网址'

header={
		
		'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)\
 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'

	}


reg='[[](.*)[]]'  #正则表达式
r=requests.get(url,headers=header) #发送get请求
data2=re.findall(reg,r.text) #用正则表达式取数据,返回数据为列表型
#print(data2)
#print(type(data2))
if data2:
		k=eval(data2[0]) #用eval()函数将字符串恢复真身为字典
		for i in k:
			print(i)
else:
		print('没有数据')

到此大功告成

有在学习python的朋友,可以多关注本站,百度搜索有货街,就可以找到我啦!

[猜你喜欢]

标签: 电商