#科技青年# #科技V计划# #Python代码# 文本转json总是不成功,有几个坑要小心json

#科技青年# #科技V计划# #Python代码# 文本转json总是不成功,有几个坑要小心json是一个很优美的层次化数据存储方式,是大量嵌套数据的理想存储方式。很多网页的数据就是以json格式来编写和传输的,获取到json数据后可以很方便地层层分析数据。获取到了json格式结构如下图。json的主要格式就是一个“名称”后跟一个:冒号;“‘名称:值’成对”,之间使用逗号分隔。比如像这样的字符串:{"a":1,"b":2,"c":3,"d":4,"e":5}在python中是怎样转化为json的呢?举个例子:jsonData = \\'{"a":1,"b":2,"c":3,"d":4,"e":5}\\';text = json.loads(jsonData)就这么两句话,一个成串的文本就轻松转换为了json数据。但在实战过程中,常常会遇到很多意想不到的问题。问题1:字符串必须是以{左括号开始,}右括号结束的数据,如果不是,就要想办法截取很多时候遇到的字符串是不太规则的数据,比如收到了这样的文本数据:这时候就需要这样的程序:json_data = re.findall(r\\'g_page_config = (.*);\\', text)[0]这句程序的含义是:取左边g_page_config = 为开头,右边为;结尾之间的部分。如果获取到的数据左右比较规则,比如像这样的数据:jsonp620({"pageName": "mainsrp"})就可以用这样的程序:response = response.split(\\'(\\')[1].split(\\')\\')[0]这句程序的含义是:用字符串split()截取()之间的部分。问题2:字符串必须是一排数据,如果不是,就需要一排一排的读取有时候收到字符串有很多排,这时候转换为json直接回报错。解决方案就是一排一排的转换为json,然后再将所有的json数据组合在一起。程序就像这样:file = open("test1.txt", \\'r\\', encoding=\\'utf-8\\')papers = []for line in file.readlines(): dic = json.loads(line) papers.append(dic)以上就是常遇到的两个问题,你学会了吗?


分享到:


相關文章: