pyhton 从web获取json数据 保存到本地然后再读取
从web中获取json数据直接进行处理总认为太慢。主要是从web中获取获取数据的过程有点慢。
所以就在想 假设先利用空暇时间把json数据获取并保存到本地,然后再从本地文件里读取和操作。应该就要快非常多。
这中间的主要问题就是格式的转换问题:1、将获取取的json数据序列化后保存到本地文件里;2、从文件里逐行读取数据,再将其反序列化为json格式。
详细的一个演示样例程序例如以下:
【为保护个人信息,程序中的一些代码不完整】
from urllib.request import urlopen;
from urllib.parse import quote;
import json; #方法作用:从ltp-cloud云平台中获取json数据,并保存到本地文件里
#方法參数:sent是被处理的句子參数
def getAndSaveJSON(sent): #生成訪问目标url
url_get_base = "http://api.ltp-cloud.com/analysis/?"
api_key = '你的api_key值'
text = quote(sent); #利用quote方法将url中的汉字进行转码
format = 'json';
pattern = 'all';
fullurl=url_get_base+"api_key="+api_key+"&text="+text+"&format="+format+"&pattern="+pattern try:
#获取json数据
rawtext=urlopen(fullurl,timeout=15).read();
jsonStr = json.loads(rawtext.decode('utf8')); #将ltp处理结果保存到文本中
f=open("txt/jsondatafile.json","a",encoding="utf8");
f.write(json.dumps(jsonStr[0][0],ensure_ascii=False)+"\n"); #保存前,须要将jsonStr序列化为python相对的数据类型。去掉最后的换行符
f.close();
except Exception as err:
print(err);
print(fullurl);
print('url 訪问出错'); #调用方法获取并保存json数据
getAndSaveJSON("河南省公安厅曾以涉嫌骗取出入境证件,对山西前首富张新明进行通缉,并悬赏500元。");
getAndSaveJSON("郑州是河南的省会。"); #从jsondatafile.json中读取出json数据
for eachLine in open("txt/jsondatafile.json","r",encoding="utf8"):
jsonData=json.loads(eachLine);#反序列化,得到json格式数据
print(jsonData)
结果:
[{'cont': '河南省', 'parent': 1, 'relate': 'ATT', 'ne': 'B-Ni', 'pos': 'ns', 'arg': [], 'id': 0}, {'cont': '公安厅', 'parent': 5, 'relate': 'SBV', 'ne': 'E-Ni', 'pos': 'n', 'arg': [], 'id': 1}, {'cont': '曾', 'parent': 5, 'relate': 'ADV', 'ne': 'O', 'pos': 'd', 'arg': [], 'id': 2}, {'cont': '以', 'parent': 5, 'relate': 'ADV', 'ne': 'O', 'pos': 'p', 'arg': [], 'id': 3}, {'cont': '涉嫌', 'parent': 3, 'relate': 'POB', 'ne': 'O', 'pos': 'v', 'arg': [], 'id': 4}, {'cont': '骗取', 'parent': -1, 'relate': 'HED', 'ne': 'O', 'pos': 'v', 'arg': [{'type': 'A0', 'end': 1, 'id': 0, 'beg': 0}, {'type': 'ADV', 'end': 2, 'id': 1, 'beg': 2}, {'type': 'MNR', 'end': 4, 'id': 2, 'beg': 3}, {'type': 'A1', 'end': 7, 'id': 3, 'beg': 6}], 'id': 5}, {'cont': '出入境', 'parent': 7, 'relate': 'ATT', 'ne': 'O', 'pos': 'j', 'arg': [], 'id': 6}, {'cont': '证件', 'parent': 5, 'relate': 'VOB', 'ne': 'O', 'pos': 'n', 'arg': [], 'id': 7}, {'cont': ',', 'parent': 5, 'relate': 'WP', 'ne': 'O', 'pos': 'wp', 'arg': [], 'id': 8}, {'cont': '对', 'parent': 14, 'relate': 'ADV', 'ne': 'O', 'pos': 'p', 'arg': [], 'id': 9}, {'cont': '山西', 'parent': 12, 'relate': 'ATT', 'ne': 'S-Ns', 'pos': 'ns', 'arg': [], 'id': 10}, {'cont': '前', 'parent': 12, 'relate': 'ATT', 'ne': 'O', 'pos': 'nd', 'arg': [], 'id': 11}, {'cont': '首富', 'parent': 13, 'relate': 'ATT', 'ne': 'O', 'pos': 'n', 'arg': [], 'id': 12}, {'cont': '张新明', 'parent': 9, 'relate': 'POB', 'ne': 'S-Nh', 'pos': 'nh', 'arg': [], 'id': 13}, {'cont': '进行', 'parent': 5, 'relate': 'COO', 'ne': 'O', 'pos': 'v', 'arg': [{'type': 'A1', 'end': 15, 'id': 0, 'beg': 15}], 'id': 14}, {'cont': '通缉', 'parent': 14, 'relate': 'VOB', 'ne': 'O', 'pos': 'v', 'arg': [], 'id': 15}, {'cont': ',', 'parent': 5, 'relate': 'WP', 'ne': 'O', 'pos': 'wp', 'arg': [], 'id': 16}, {'cont': '并', 'parent': 18, 'relate': 'ADV', 'ne': 'O', 'pos': 'c', 'arg': [], 'id': 17}, {'cont': '悬赏', 'parent': 5, 'relate': 'COO', 'ne': 'O', 'pos': 'v', 'arg': [{'type': 'A1', 'end': 19, 'id': 0, 'beg': 19}], 'id': 18}, {'cont': '500', 'parent': 20, 'relate': 'ATT', 'ne': 'O', 'pos': 'm', 'arg': [], 'id': 19}, {'cont': '元', 'parent': 18, 'relate': 'VOB', 'ne': 'O', 'pos': 'q', 'arg': [], 'id': 20}, {'cont': '。', 'parent': 5, 'relate': 'WP', 'ne': 'O', 'pos': 'wp', 'arg': [], 'id': 21}]
[{'cont': '郑州', 'parent': 1, 'relate': 'SBV', 'ne': 'S-Ns', 'pos': 'ns', 'arg': [], 'id': 0}, {'cont': '是', 'parent': -1, 'relate': 'HED', 'ne': 'O', 'pos': 'v', 'arg': [{'type': 'A0', 'end': 0, 'id': 0, 'beg': 0}, {'type': 'A1', 'end': 4, 'id': 1, 'beg': 2}], 'id': 1}, {'cont': '河南', 'parent': 4, 'relate': 'ATT', 'ne': 'S-Ns', 'pos': 'ns', 'arg': [], 'id': 2}, {'cont': '的', 'parent': 2, 'relate': 'RAD', 'ne': 'O', 'pos': 'u', 'arg': [], 'id': 3}, {'cont': '省会', 'parent': 1, 'relate': 'VOB', 'ne': 'O', 'pos': 'n', 'arg': [], 'id': 4}, {'cont': '。', 'parent': 1, 'relate': 'WP', 'ne': 'O', 'pos': 'wp', 'arg': [], 'id': 5}]
pyhton 从web获取json数据 保存到本地然后再读取的更多相关文章
- js json数据保存到本地
转自:https://www.cnblogs.com/gamedaybyday/p/9906542.html 使用HTML5来实现本地文件读取和写入 (FileReader读取json文件,File ...
- HttpURLConnection从网上获取Json数据并解析详解
HttpURLConnection从网上获取Json数据并解析 1.HttpURLConnection请求数据的步骤 (1)构造一个URL接口地址: URL url = new URL("h ...
- jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
对于问题从后台获取json数据,将内容填充到下拉列表,代码非常简单,具体过程请看下面代码. 需求:url:链接 par:ID sel:下拉列表选择器 function BuildS ...
- C# 结构体和List<T>类型数据转Json数据保存和读取
C# 结构体和List<T>类型数据转Json数据保存和读取 一.结构体转Json public struct FaceLibrary { public string face_name ...
- Android Volley 库通过网络获取 JSON 数据
本文内容 什么是 Volley 库 Volley 能做什么 Volley 架构 环境 演示 Volley 库通过网络获取 JSON 数据 参考资料 Android 关于网络操作一般都会介绍 HttpC ...
- ajax获取json数据为undefined--原因解析
解决办法:var dataObj=eval("("+data+")");//转换为json对象 问题: 1. 碰到一个问题ajax成功获取json数据后,取值显 ...
- 使用JSONP,jQuery的ajax跨域获取json数据
网上找了很多资料,写的不错,推荐下: 1.深入浅出JSONP--解决ajax跨域问题 (http://www.cnblogs.com/chopper/archive/2012/03/24/240394 ...
- Netflix Falcor获取JSON数据
Netflix开源了JavaScript库Falcor,它为从多个来源获取JSON数据提供了模型和异步机制. Netflix利用Falcor库实现通过JSON数据填充他们网页应用的用户界面.所有来自内 ...
- jquery通过ajax方法获取json数据不执行success
1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...
随机推荐
- [Luogu 2331] [SCOI2005]最大子矩阵
[Luogu 2331] [SCOI2005]最大子矩阵 题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 输入输出格式 ...
- indeed 4.22 第一次网测
1.第一题 没有看 2. 由于数据范围很小,所以每一层需要全排列,寻找最小的花费,然后所有层加起来就是最后的结果. #include<bits/stdc++.h> #define pb p ...
- ScreenRecord(about C# winform)
由于一些不得不做的事(哈,有时间再聊),所以就不得不写一个关于录屏的软件了,如此无力的开篇,开始吧. 在网上搜了很多关于录屏的源码,发现都使不了,剧情的需要很难满足.于是突然想到了github上的一个 ...
- 复习HTML+CSS(9)
n CSS简介 CSS:Cascading Style Sheets 层叠样式表 CSS的主要目的:是给HTML标记添加各种各样的表现(格式.样式).比如:文字样式.背景.文本样式.链接样式. 提示 ...
- 在C#程序中,创建、写入、读取XML文件的方法
一.在C#程序中,创建.写入.读取XML文件的方法 1.创建和读取XML文件的方法,Values为需要写入的值 private void WriteXML(string Values) { //保存的 ...
- ie8及其以下版本兼容性问题之响应式
解决办法:引入Respond.js让IE6-8支持CSS3 Media Query 使用方式 参考官方demo:http://scottjehl.github.com/Respond/test/tes ...
- js函数-参数传递
写js的时候,函数是不可避免的,几乎90%的js都是由函数组成的,函数之间考什么连接,参数! 好了,用代码的运行结果说明问题. function fn1(str,strs){ var str=&quo ...
- AI: DL方法与问题空间探索
所谓问题的解决是生存参数空间的一种状态转移到另外一种状态,而目的状态恰好是主体所希望的.完成这种转换的一系列脚本变化过程叫做场景序列,也叫通路.驱动这一些列场景转换的主体参与过程,被称为主动执行.而主 ...
- ANN:ML方法与概率图模型
一.ML方法分类: 产生式模型和判别式模型 假定输入x,类别标签y - 产生式模型(生成模型)估计联合概率P(x,y),因可以根据联合概率来生成样本:HMMs ...
- windows 实时性
在硬件编程时,大部分非智能硬件并没有主动通知反馈功能,需要PC主动轮询状态寄存器去查询硬件状态.对于运动类控制器,查询的时机(间隔)在一定程度上影响着准确率与系统负载.即使不考虑系统负载,在1000H ...