python json loads,如何使用Python处理JSON数据
python json loads,如何使用Python处理JSON数据详细介绍
本文目录一览: python如何读写json数据(代码)
本篇文章给大家带来的内容是关于python如何读写json数据(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。json使用 Python 语言来编码和解码 JSON 对象。JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。使用json函数需要导入json模块json.dumps将 Python 对象编码成 JSON 字符串json.loads用于解码 JSON 数据。该函数返回 Python 字段的数据类型。基础命令将python对象编码成为json的字符串格式d = {'name':'sheen', 'age':17}jsonStr = json.dumps(d) #{"name": "sheen", "age": 17}
l = [1,3,5,1.2]jsonList = json.dumps(l) #[1, 3, 5, 1.2]
将获取的json字符串解码为python的对象pydict = json.loads(jsonStr) #{'name': 'sheen', 'age': 17}
pylist = json.loads(jsonList) #[1, 3, 5, 1.2]
将python对象编码成为json的字符串格式并写入文件中with open('json.txt','w') as f : json.dump(d,f)将文件中的json字符串解码为python的对象with open('json.txt') as f: jsondict = json.load(f) #{'name': 'sheen', 'age': 17}
json示例给100个不同的用户一个value值,存放到文件'json_dump.txt',并且是json格式json.dump()参数indent应该是一个非负的整型,如果是0,或者为空,则一行显示数据;否则会换行且按照indent的数量显示前面的空白sort_keys将数据根据keys的值进行排序separators = ("每个元素间的分隔符", “key和value之间的分隔符”)#给100个不同的用户一个value值#存放到文件'json_dump.txt',并且是json格式import jsonimport stringfrom random import choicekeys = ['user'+str(i) for i in range(100)]values = string.ascii_lowercase+string.ascii_uppercase #大小写字符串dict = {choice(keys):choice(values) for i in range(100)}with open('json_dump.txt','w') as f: #indent:应该是一个非负的整型,如果是0,或者为空,则一行显示数据;否则会换行且按照indent的数量显示前面的空白 #sort_keys:将数据根据keys的值进行排序 #separators = ("每个元素间的分隔符", “key和value之间的分隔符”) json.dump(dict,f,indent=4,sort_keys=True, separators=(';', '='))#为何最后文件不够100行?#因为随机选取的key值可能会重复,字典类型的key不允许重复,最后得到的数据会少于你给定的100次查询IP地址根据IP查询所在地、运营商等信息的一些API如下:1. 淘宝的API(推荐):http://ip.taobao.com/service/getIpInfo.php?ip=110.84.0.1292. 国外freegeoip.net(推荐):http://freegeoip.net/json/110.84.0.129 这个还提供了经纬度信息(但不一定准)3. 新浪的API:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=110.84.0.1294. 腾讯的网页查询(返回的非json格式): http://ip.qq.com/cgi-bin/searchip?searchip1=110.84.0.1295. ip.cn的网页(返回的非json格式):http://www.ip.cn/index.php?ip=110.84.0.1296. ip-api.com: http://ip-api.com/json/110.84.0.129上述的API接口,大多有一个特点是, 返回的直接是个json格式import jsonfrom urllib.request import urlopen# ip = input("请输入你要查询的Ip:")ip = '8.8.8.8'url = "http://ip.taobao.com/service/getIpInfo.php?ip=%s" %(ip)print(url)# 根据url获取网页的内容, 并且解码为utf-8格式, 识别中文;text = urlopen(url).read().decode('utf-8')# print(text,type(text))data = json.loads(text)['data']country = data['country']country_id = data['country_id']print(country,country_id)
python如何读取json文件
读取json文件:例:现在我的json文件第一行是这样的:{"name": "异享金融", "company_url": "http://www.yixiangjinrong.com", "telphone": "0371-55056647", "crawl_time": "2017-07-13 16:11:16"}我要用python打印到控制台输出上。第一步:还是要把json文本转换为python可以操作的数据结构。import json# 转换文件s1 = json.load('filename')#转换字符串s2 = json.loads(str)第二步:我们只需按照操作字典的方法取值。import jsonwith open('finance/finance_company.json', encoding='utf-8') as f: line = f.readline() d = json.loads(line) name = d['name'] company_url = d['company_url'] telephone = d['telphone'] crawl_time = d['crawl_time'] print(name, company_url, telephone, crawl_time) f.close()输出结果:异享金融 http://www.yixiangjinrong.com 0371-55056647 2017-07-13 16:11:16更多Python相关技术文章,请访问Python教程栏目进行学习!
python接口如何返回json字符串
本文主要为大家分享一篇python 接口返回的json字符串实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能帮助到大家。如下所示:JSON 函数使用 JSON 函数需要导入 json 库:import json。函数 描述json.dumps 将 Python 对象编码成 JSON 字符串json.loads 将已编码的 JSON 字符串解码为 Python 对象#!/usr/bin/env python # -*- coding: utf-8 -*- import urllib2 import urllib import cookielibimport json def login(): data={'username': '015208@zjtlcb.com', 'password': '1234567'} post_data=urllib.urlencode(data) #将post消息化成可以让服务器编码的方式 cj=cookielib.CookieJar() #获取cookiejar实例 opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) #自己设置User-Agent(可用于伪造获取,防止某些网站防ip注入) headers = {} website = "http://127.0.0.1:8000/api2/auth-token/" req=urllib2.Request(website,post_data,headers) content=opener.open(req) s= content.read() #linux下没有gbk编码,只有utf-8编码 print s print type(s) text = json.loads(s) print type(text) print text['token'] if __name__ == '__main__': login() C:Python27python.exe C:/Users/Administrator/PycharmProjects/untitled/a1.py{"token": "2c73f3885ac90ee462daea49f1890730f567fbfe"}
2c73f3885ac90ee462daea49f1890730f567fbfeProcess finished with exit code 0
python中json处理
python中json文件处理涉及的四个函数json.loads()、json.dumps()、json.load()、json.dump()。
1)json.dumps()
????将一个Python数据类型dict进行json格式的编码(字典->字符串)
? ? eg:
????age_dict = {'age1':'12', 'age2':'15'}
????json_info = json.dumps(age_dict)
????print("json_info = {}".format(json_info))
????print("json_info type = {}".format(type(json_info)))
2)json.loads()
????将json格式数据转换为dict(字符串->字典)
????json_age ='{"age1": "12", "age2": "15"}'
????dict_age = json.loads(json_info)
????print("json_age = {}".format(json_age))
????print("dict_age type = {}".format(str(type(dict_age))))
3)json.load()
????读取文件,将里json格式字符串转化为dict
????with open(test.json, 'r') as file:
? ? ????contents = json.load(file)
????print(contents)
4)json.dump()
????将dict类型转换为json格式字符串,存入文件
????number = [1, 2, 3, 5]
????file = 'number.json'
????with open(file?, 'w') as file:
? ? ????json.dump(number, file)
【Python】浅谈python中的json
一 前言 ?
? ?最近一直在做开发相关的工作--基于Django的web 平台,其中需要从model层传输数据到view 层做数据展示或者做业务逻辑处理。我们采用通用的Json格式--Json(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和程序解析。
二 认识Json
? ?2.1 Json 结构
? ?常见的Json格式为 “名称/值”对的集合,其中 值可以是对象,列表,字典,字符串等等。比如
backup_data?=?{"back_to_host":?"dbbk0",
"ip_address":?"10.10.20.3",
"host_name":?"rac4",
"port":?3306}
? 2.2 使用Json
? Python的Json模块序列化与反序列化的过程分别是 编码和解码。这两个过程涉及到两组不同的函数
??编码 把一个Python对象编码转换成Json字符串,json.dumps(data)/json.dump(data,file_handler)
? 解码 把Json格式字符串解码转换成Python对象,json.loads(data)/json.load(file_handler)
? 在python中要使用Json模块做相关操作,必须先导入:
import Json
? 2.3 主要函数
? 编码函数主要有 json.dumps(data)/json.dump(data,file_handler)
? ?json.dumps()的参数是将python对象转换为字符串,如使用json.dumps序列化的对象json_dumps=json.dumps({'a':1, 'b':2}) ,json_dumps='{"b": 2, "a": 1}'
? ?json.dump 是将内置类型序列化为json对象后写入文件。
?解码函数主要由json.loads(data)/json.load(file_handler) ?
? ??json.loads的参数是内存对象,把Json格式字符串解码转换成Python对象,json_loads=json.loads(d_json) ?#{ b": 2, "a": 1},使用load重新反序列化为dict
? ? json.load()的参数针对文件句柄,比如本地有一个文件/tmp/test.json ?json_load=json.load(open('/tmp/test.json'))
具体案例参考如下:
In?[3]:?data={"back_to_host":?"rac1",
...:?"ip_address":?"10.215.20.3",
...:?"host_name":?"rac3",
...:?"port":?3306}
In?[7]:?json_str=json.dumps(data)
In?[8]:?print json_str
{"ip_address":?"10.215.20.3",?"back_to_host":?"rac1",?"host_name":?"rac3",?"port":?3306}
In?[9]:?json_loads=json.load(json_str)
---------------------------------------------------------------------------
AttributeError Traceback?(most recent?call?last)
?in?
()
---->?1 json_loads=json.load(json_str)
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.pyc?in?load(fp,?encoding,?cls,?object_hook,?parse_float,?parse_int,?parse_constant,?object_pairs_hook,?**kw)
284
285?""
注意 从上面的报错信息来看 json.loads 传参是字符串类型,并不是文件句柄,没有 read()属性。
In?[10]:?json_loads=json.loads(json_str)
In?[11]:?print json_loads
{u'back_to_host':?u'rac1',?u'ip_address':?u'10.215.20.3',?u'host_name':?u'rac3',?u'port':?3306}
In?[12]:?type(json_loads)
Out[12]:?dict
In?[13]:?type(json_str)
Out[13]:?str
利用dump 将数据写入 dump.json
In?[17]:?with open('/tmp/dump.json','w')?as f:
...:?json.dump(json_str,f)
...:
yangyiDBA:~?yangyi$ cat /tmp/dump.json
"{\"ip_address\": \"10.10.20.3\", \"back_to_host\": \"rac1\", \"host_name\": \"rac3\", \"port\": 3306}"
yangyiDBA:~?yangyi$
利用json.load 将dump.sjon的数据读出来并赋值给 data?
In?[18]:?with open('/tmp/dump.json','r')?as f:
...:?data=json.load(f)
...:
In?[19]:?print data
{"ip_address":?"10.10.20.3",?"back_to_host":?"rac1",?"host_name":?"rac3",?"port":?3306}
三 小结
? 本文算是一篇学习笔记,主要对比了json.loads/json.load ?, json.dumps/ json.dump 的使用差异 ,方便以后更好的使用json 。
以上为本次分享内容,感谢观看。
如何使用Python处理JSON数据
如何使用Python处理JSON数据?本篇文章就给大家介绍使用Python处理JSON数据的基本方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。在介绍使用Python处理JSON数据的基本方法之前,我们首先要了解一下什么是JSON?JSON代表“JavaScript Object Notation”,可以说是“基于JavaScript语言符号的数据格式”。但是,该表示法仅基于JavaScript,可用于其他各种语言。JSON是我们存储和交换数据的一种方式,它通过其语法实现,并在许多Web应用程序中使用。JSON的优点在于它具有人类可读的格式,这可能是在数据传输中使用它的原因之一,此外还有使用API时的有效性。在JSON中,数据以名称/值(name/value)对表示;大括号内存储对象,每个名称后跟':'(冒号),名称/值对之间要用(逗号)分隔;方括号包含数组,值以(逗号)分隔。JSON格式数据的示例:{ "book1":{"title": "Python Beginners", "year": 2005 ,"page": 399},"book2":{ "title": "Python Developers", "year": 2006 ,"page": 650 }}下面我们来详细了解一下在Python中如何处理JSON数据。Python使得处理JSON数据变得简单。实现此目的的模块是json模块。该模块应该包含在Python(内置)安装中,因此你不需要像使用PDF和Excel文件那样安装任何外部模块。要使用此模块,你唯一需要的是导入它(开头写入):import json但是,JSON库是做什么的呢?此库主要从文件或字符串解析JSON。它还将JSON解析为Python中的字典或列表,反之亦然,即将Python字典或列表转换为JSON字符串。读取JSON(JSON转Python)读JSON意味着将JSON转换为Python值(对象)。如上所述,json库将JSON解析为Python中的字典或列表。为此,我们使用loads()函数(从字符串加载),如下所示:import jsonjsonData = '{"name": "Frank", "age": 39}'jsonToPython = json.loads(jsonData)如果要查看输出,请执行 print jsonToPython,在这种情况下,你将获得以下输出:{'age': 39, 'name': 'Frank'}也就是说,数据作为Python字典(JSON对象数据结构)返回。Python转JSON上一节我们介绍了JSON转Python,这一节我们将向你展示如何将Python值转换(编码)为JSON。假设我们在Python中有以下字典:import jsonpythonDictionary = {'name':'Bob', 'age':44, 'isEmployed':True}dictionaryToJson = json.dumps(pythonDictionary)如果我们运行 print dictionaryToJson,我们得到以下JSON数据:{"age": 44, "isEmployed": true, "name": "Bob"}因此,此输出被视为对象(Dictionary)的数据表示。该方法dumps()是此类操作的关键。此时需要注意的是,JSON不能存储所有类型的Python对象,只能存储以下类型:列表; 字典; 布尔值; 数; 字符串; 没有。因此,需要转换任何其他类型以便存储在JSON中。假设我们有以下课程:class Employee(object): def __init__(self, name): self.name = name假设我们创建了一个新对象abder,如下所示:abder = Employee('Abder')如果我们想将此对象转换为JSON,该怎么办?那是json.dumps(abder)?在这种情况下,你将收到类似于以下内容的错误:Traceback (most recent call last): File "test.py", line 8, in
abderJson = json.dumps(abder) File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 243, in dumps return _default_encoder.encode(obj) File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 207, in encode chunks = self.iterencode(o, _one_shot=True) File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 270, in iterencode return _iterencode(o, 0) File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 184, in default raise TypeError(repr(o) + " is not JSON serializable")TypeError: <__main__.Employee object at 0x10e74b750> is not JSON serializable但是,有解决方法吗?幸运的是有。要解决此问题,我们可以定义类似于以下的方法:def jsonDefault(object): return object.__dict__然后将对象编码为JSON,如下所示:jsonAbder = json.dumps(abder, default=jsonDefault)如果你运行 print jsonAbder,你应该得到以下输出:{"name": "Abder"}我们现在已经将Python对象(abder)编码为JSON。
python的json.loads如何处理带HTML的字符串?
json串中的双引号需要转义为【\"】:
str='''[{"level": 1,"value": ["
aaa\"b\"ccc
"]}]'''
python——json.loads避坑
json.loads:将json字符串load(s)成python对象
补充知识:
(来自:https://blog.csdn.net/cuicui_ruirui/article/details/105346544)
str1 = "{'code': '0000', 'data': {'id': 413}, 'msg': None}"
str2 = '{"code": "0000", "data": {"id": 413}, "msg": None}'
str3 = '{"code": "0000", "data": {"id": 413}, "msg": "None"}'
对这三个字符串分别使用json.loads()方法的时候只有str3的运行结果是正确的。
这里需要注意的点:
1.如果要让json字符串转化为dict类型,字符串中key的值需要用双引号括起来
2.如果字符串中的value是一个字符串形式,如str2中的None,也需要用双引号括起来
3.如果字符串中的value是一个数值的话可以不需要用双引号
END~
如何用Python,查找json格式中指定的数据,然后输出这些查找到的数据?
1、打开编辑器,例如sublime text 3,新建一个PY文档。
2、import os因为要调入文件,那么我们要引入os库,这样可以定位文件。
3、with open("E:\\test.txt") as file:print(file.readlines())这里读取一下文件,可以看出每一行是由列表的形式存储的。
4、r l in lines: l = l.strip("\n") print(l)这里我们利用strip来去除掉换行符。
5、string = l.split("=")接下来我们用split把字符串拆分为列表。
6、新建一个空的字典。result[string[0]] = string[1]现在把每一行的键和值都导入到字典里面。
可以首先使用json包的loads函数对json数据进行解析,然后就可以像操作Python数据格式一样对数据进行索引和遍历了。
import json s = '{"aescCityList":null,"cityAllList":null,"cityJsonArray"...'data = json.loads(s)for city in data["cityJsonArray"]: if city["cityId"] == 4: print city
js = js.loads(str)for city in js['cityJsonArray']: print city['cityId']
msg=json.dumps(msg) 变成字典
用Python查找json格式中指定的数据输出这些查找到的数据的操作步骤如下:
1,打开一个编辑器,例如sublime text 3,然后创建一个新的PY文档。
2,导入os因为要传输文件,所以我们必须引入os库,以便您可以找到文件。
3,用打开(“ E:\\ test.txt”)作为文件:print(file.readlines())在这里读取文件,可以看到每一行都以列表的形式存储。
4,r l行:l = l.strip(“ \ n”)print(l)在这里,我们使用strip删除换行符。
5,string = l.split(“ =”)接下来,我们使用split将字符串拆分为一个列表。
6,创建一个空字典。结果[string [0]] = string [1]现在将每行的键和值导入字典。
python json.loads 报错 json.decoder.JSONDecodeError
原因:json默认使用的是严谨格式,json_data键值中有非法控制符号如\n\t, 当跨语言传递数据时,就容易报出这个错误。
解决方法:加上参数 strict
[转自] ( https://www.cnblogs.com/zongfa/p/11388695.html )