精华内容
下载资源
问答
  • Python JSON

    千次阅读 2020-02-04 23:36:32
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。...json.dumps 用于将 Python 对象编码成 JSON 字符串。 #!/usr/bin/python import json data = [ { 'a' : 1, 'b' : 2, 'c' : ...

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。

    使用 JSON 函数需要导入 json 库:import json

    json.dumps 用于将 Python 对象编码成 JSON 字符串。

    #!/usr/bin/python
    import json
    
    data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
    
    json = json.dumps(data)
    print json

    Demjson 是 python 的第三方模块库,可用于编码和解码 JSON 数据,包含了 JSONLint 的格式化及校验功能。

    Github 地址:https://github.com/dmeranda/demjson

    官方地址:http://deron.meranda.us/python/demjson/

    展开全文
  • python json

    千次阅读 2012-08-22 15:20:01
    1.安装 下载 simplejson-2.6.1.tar 命令: tar -xf simplejson-2.6.1.tar 解压 ...安装命令:python setup.py install 安装完成 2.程序,注意编码问题 import simplejson def read_jsonfile(file):  fd

    1.安装

    下载 simplejson-2.6.1.tar

    命令: tar -xf simplejson-2.6.1.tar 解压

    然后:cd simplejson-2.6.1

    安装命令:python setup.py install

    安装完成


    2.程序,注意编码问题

    import simplejson

    def read_jsonfile(file):

         fd = open(file, 'r')

        ls = fd.readline()

        ls = ls.decode('gbk', 'ignore')  # 注意

        str = simplejson.loads(ls, encoding='gbk')

        print str["feature"]["url"]

        fd.close()


    注意:

    编码问题很关键,如果不制定gbk,会提示如下错误:

    Traceback (most recent call last):
      File "./json_lp.py", line 16, in <module>
        read_jsonfile("gaohui.out")
      File "./json_lp.py", line 11, in read_jsonfile
        str = simplejson.loads(ls, encoding='gbk')
      File "/home/work/local/python/lib/python2.5/site-packages/simplejson/__init__.py", line 468, in loads
        return cls(encoding=encoding, **kw).decode(s)
      File "/home/work/local/python/lib/python2.5/site-packages/simplejson/decoder.py", line 406, in decode
        obj, end = self.raw_decode(s)
      File "/home/work/local/python/lib/python2.5/site-packages/simplejson/decoder.py", line 424, in raw_decode
        obj, end = self.scan_once(s, idx=_w(s, idx).end())
    UnicodeDecodeError: 'utf8' codec can't decode bytes in position 1-2: illegal multibyte sequence



    展开全文
  • Python json

    千次阅读 2019-01-25 11:11:32
    参考文档: 文档 link json在线校验工具 http://www.bejson.com/ json格式详解 http://www.json.org/json-zh.html 菜鸟教程-python json库 ... python json.d...

    参考文档:

    文档 link
    json在线校验工具

    http://www.bejson.com/

    json格式详解 http://www.json.org/json-zh.html
    菜鸟教程-python json库 http://www.runoob.com/python/python-json.html

    python json.dumps() json.dump()的区别

    https://www.cnblogs.com/wswang/p/5411826.html

    Python中报错TypeError: must be str, not bytes

    https://blog.csdn.net/killvoon/article/details/50845909

     

    学习笔记:

     

    json 类型转换到 python 的类型对照表:

    json python
    object dict
    array list
    string unicode
    number (int) int, long
    number (real) float
    true True
    false False
    null None

     

    json库的函数:

    json.loads()

    将已编码的 JSON 字符串解码为 Python 对象

    将str转化成dict格式

    json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

     

    json.dumps()

    将 Python 对象编码成 JSON 字符串

    将dict转化成str格式

    json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

     

    json.load()

    从文件对象将已编码的 JSON 字符串解码为 Python 对象

    fp = open(file, 'r')
    json.loads(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

     

    json.dump()

    将 Python 对象编码成 JSON 字符串,并存入文件

    Serialize ``obj`` as a JSON formatted stream to ``fp``

    fp = open(file, 'w')
    
    dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding='utf-8', default=None, sort_keys=False, **kw)

     

     

    *实际使用时发现在本机上,读取文件需用utf-8编码,在abox上需用二进制编码,详见https://blog.csdn.net/killvoon/article/details/50845909

    eg:修改data receiver的配置文件locDataReceiver.json

    import io
    import json
     
    with io.open(config_path, 'rb') as f:
        json_file = json.loads(f.read())
       # json_file = json.load(f)
        f.close()
        json_file['sensor'][0]['inputCfg']['directory'] = input_data
        json_file['sensor'][4]['inputCfg']['contiCameraInputCfg']['ethAdapterName'] = port
    with io.open(config_path, 'wb') as f:
        json.dump(json_file, f, sort_keys=True, indent=4, separators=(',', ': '))

     

    展开全文
  • python json详解

    千次阅读 2016-10-03 16:55:28
    python json 详解

    项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
    欢迎大家star,留言,一起学习进步

    1.json是什么

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。json最大的优势就是独立于编程语言, 易于人阅读和编写,同时也易于机器解析和生成。所以,如果我们需要在不同的编程语言之间传递对象,或者需要在网络世界中传输数据,我们都可以将数据序列化为json格式。当将其序列化为json格式以后,可以方便地被所有编程语言读取与解析,也可以方便地被存储在磁盘中或者用于网络传输。正因为有这些优点,json在实际中使用非常广泛。

    JSON构建于两种结构:
    1.“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
    2.值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

    2.python数据类型与json数据类型的映射关系

    Python类型 JSON类型
    dict \hspace{1.3cm} {}
    list \hspace{1.5cm} []
    str(unicode) \hspace{0.5cm} string
    int(float,long) \hspace{0.3cm}number
    True(False) \hspace{0.7cm} true(false)
    None \hspace{1.7cm} null

    3.python中json模块的简单用法

    python中内置的json模块就可以完成从python对象到json格式数据的转换。
    先来看看怎么把一个python对象变为一个json串:

    >>> import json
    >>> dic = dict(name='James',age=18)
    >>> dic_to_str = json.dumps(dic)
    >>> dic_to_str
    '{"age": 18, "name": "James"}'
    >>> type(dic_to_str)
    <type 'str'>
    

    通过dumps方法,就把一个dict变为了一个json串,返回的是一个str对象。dumps方法相当于一个encoding过程,是对简单数据类型的编码。也可以理解是对python对象的一个序列化的过程。

    接下来看看如何把一个json串变为一个python对象:

    >>> str_to_dic = json.loads(dic_to_str)
    >>> str_to_dic
    {u'age': 18, u'name': u'James'}
    >>> type(str_to_dic)
    <type 'dict'>
    

    同理通过loads方法,将一个json串,变为了一个dict对象,返回的是一个dict。loads方法相当于是一个decoding过程,是对字符串的一个解码。当然也可以理解为是对python对象的反序列化!

    4.将自己的类转成json串

    前面我们看了怎样将python中的内置dict对象转化为json串的过程。在很多时候,我们希望将自己定义的类也转化为json串。比如我们自己定义了person类,并且希望将其序列化为json串:

    #!/usr/bin/env python
    #coding:utf-8
    
    import json
    
    class Person(object):
    
        def __init__(self,name,age):
            self.name = name
            self.age = age
    
    person = Person("James",18)
    print (json.dumps(person))
    

    将上面的代码run起来以后,会有以下错误:

    Traceback (most recent call last):
      File "./person.py", line 13, in <module>
        print (json.dumps(person))
      File "/Users/lei.wang/anaconda/lib/python2.7/json/__init__.py", line 244, in dumps
        return _default_encoder.encode(obj)
      File "/Users/lei.wang/anaconda/lib/python2.7/json/encoder.py", line 207, in encode
        chunks = self.iterencode(o, _one_shot=True)
      File "/Users/lei.wang/anaconda/lib/python2.7/json/encoder.py", line 270, in iterencode
        return _iterencode(o, 0)
      File "/Users/lei.wang/anaconda/lib/python2.7/json/encoder.py", line 184, in default
        raise TypeError(repr(o) + " is not JSON serializable")
    TypeError: <__main__.Person object at 0x101a00090> is not JSON serializable
    

    很明显可以看出,是我们无法将person对象序列化!
    我们再仔细观察一下dumps()方法:

    json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)
    
    Serialize obj to a JSON formatted str using this conversion table. If ensure_ascii is false, the result may contain non-ASCII characters and the return value may be a unicode instance.
    

    参数default选项就是将一个对象变为一个可序列化的Json对象。前面的Person类就是因为没有指定default选项,所以无法序列化。现在我们为Person类写一个专门的序列化方法:

    !/usr/bin/env python
    #coding:utf-8
    
    import json
    
    class Person(object):
    
        def __init__(self,name,age):
            self.name = name
            self.age = age
    
    def person_to_dict(person):
        return {
            'name': person.name,
            'age':  person.age
                }
    
    person = Person("James",18)
    print json.dumps(person,default = person_to_dict)
    

    将代码运行起来:

    {"age": 18, "name": "James"}
    

    上面这么做的目的,就是通过person_to_dict方法,将person对象转化为dict对象,然后通过将default选项设置为person_to_dict,就可以使用dumps方法将person对象序列化为json对象了!

    当然,如果我们想偷点懒,也是可以的。可以不写person_to_dict方法,直接调用person类的__dict__方法:

    !/usr/bin/env python
    #coding:utf-8
    
    import json
    
    class Person(object):
    
        def __init__(self,name,age):
            self.name = name
            self.age = age
    
    def person_to_dict(person):
        return {
            'name': person.name,
            'age':  person.age
                }
    
    person = Person("James",18)
    print json.dumps(person,default = lambda obj:obj.__dict__)
    print json.dumps(person,default = person_to_dict)
    

    让代码run起来:

    {"age": 18, "name": "James"}
    {"age": 18, "name": "James"}
    

    由此可见,print两行代码的效果是一致的!

    同样的道理,既然能将自己定义的类转化为json串,同理也能将json串变为类。我们先看看loads方法:

    json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])
    Deserialize s (a str or unicode instance containing a JSON document) to a Python object using this conversion table.
    
    object_hook is an optional function that will be called with the result of any object literal decoded (a dict). The return value of object_hook will be used instead of the dict. This feature can be used to implement custom decoders (e.g. JSON-RPC class hinting).
    

    仿照上面的思路:

    #!/usr/bin/env python
    #coding:utf-8
    
    import json
    
    class Person(object):
    
        def __init__(self,name,age):
            self.name = name
            self.age = age
    
    def dic_to_person(dic):
        return Person(dic['name'],dic['age'])
    
    json_person = '{"name":"James","age":18}'
    print json.loads(json_person,object_hook = dic_to_person)
    

    让代码run起来:

    <__main__.Person object at 0x1022071d0>
    

    由此可见,我们通过loads方法,达到了将json字符串反序列化为Person对象的目的!

    展开全文
  • Python JSON 教程

    千次阅读 2019-07-31 12:33:22
    Python JSON 教程 本文我们通过示例学习python中解析、读取和写入json。同时也涉及到转换json至字典和格式化打印。 1. json 介绍 JSON (JavaScript Object Notation) 是很常用的表示数据结构规范,web应用中常作...
  • python json和java json的使用

    千次阅读 2017-10-05 11:48:02
    python json和java json的使用 1、python json import json data={ "id" : 123, "name" : "Henry Smith", "age" : 28, "salary" : 2000, "designation" : "Programmer", "ad
  • Python Json解析

    2017-11-04 14:43:29
    python json 解析 ''' Created on 2017年8月14日 @author: Administrator json ''' import json # Python 字典类型转换为 JSON 对象 data = { 'no' : 1, 'name' : 'Runoob', 'url' : 'http://www.runoob.com' ...
  • 从零开始学python | 什么是Python JSON

    千次阅读 多人点赞 2021-04-07 11:39:02
    您知道如何从在线API传输数据或将各种数据存储到本地计算机吗?您已经将自己沉浸于JSON的一种方式中,JSON表示Java Script Object Notation。它是一种著名的流行数据格式,用于表示半...让我们详细了解Python JSON
  • Python json 读取 json 文件并转为 dict 在 D 盘 新建 test.json: { "test": "测试\n换行", "dict": { "list": [0, "str\""], "num": 0 } } json 格式编写: json 格式大致以 python 的 dict {}...
  • Python解析Json字符串数组对象:Python解析Json,Python格式化Json,Python处理Json对象,Python处理Json数组import jsondata= json.loads('{"ID": "2", "IP":"192.168.1.186", "Port": "3000", "Sensor_Count":"1", ...
  • python json 转化成 DataFrame 1、json_normalize   json数据形式:   转化后的 DataFrame 形式:   代码实现: import pandas as pd from pandas import json_normalize # from pandas.io.json import json...
  • Python JSON - json.dump()

    千次阅读 2019-09-27 17:45:24
    Python JSON - json.dump() 1. json.dump(person_dict, json_file) #!/usr/bin/env python3 # -*- coding: utf-8 -*- # -------------------------------------------------------- # yongqiang cheng # ----------...
  • python jsonl文件读取(jsonlines)

    万次阅读 2019-03-14 10:38:20
    python jsonl文件读取(jsonlines) 写入 import jsonlines def parse(self, response): jsonresponse=json.loads(response.text) with jsonlines.open('output.jsonl',mode='a') as writer: writer.write(j...
  • Python JSON文件操作

    千次阅读 2019-06-08 16:56:52
    Python JSON文件操作 json的值可以为数字(整数,浮点数),字符串,逻辑值(true,false),数组,对象(类似python字典),null { "name":"小友", "age":18, "money":2019.28, "rich":false, "interest":[...
  • python json load json 数据后出现乱序

    千次阅读 2018-08-01 17:39:52
    众所周知:python json 可以转换的json字符串,但是在将其转换为字典时,出现了乱序 字典是一个散列结构,亦即他自身根据key进行排序,无法保证顺序 import json jsonstr = '{"username":"string&...
  • python json模块使用示例

    千次阅读 2016-08-14 09:26:58
    python json模块使用示例
  • 场景描述:Python标准库中的json模块,集成了将数据序列化处理的功能;在使用json.dumps()方法序列化数据时候,如果目标数据中存在datetime数据类型,执行操作时,会抛出异常:TypeError: datetime.datetime(2016, ...
  • JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于...函数描述json.dumps将 Python 对象编码成 JSON 字符串json.loads将已编码的 JSON 字符串解码为 Python 对象json.dumpsjson.dumps 用于将 Pyth...
  • Python json和simplejson的使用

    千次阅读 2019-04-14 21:55:18
    Python json和simplejson的使用 在Python中,json数据和字符串的转换可以使用json模块或simplejson模块。 jsonPython2.6开始内置到了Python标准库中,我们不需要安装即可直接使用。 simplejson需要安装后才可以...
  • 展开全部Json简介:Json,全名 JavaScript Object Notation,是一32313133353236313431303231363533e4b893e5b19e31333363393564种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和...Python的官网...
  • python json 字符串,字典转换操作,json Decimal类型处理问题,中文乱码问题。 python json转换有点小费尽,这里标记一下。 JSON: TypeError: Decimal('34.3') is not JSON serializable [duplicate] import ...
  • Python JSON序列化

    万次阅读 2014-07-11 15:52:17
    Python JSON序列化 import json # dict to json d=dict(name="cui",age=20,score=88) print json.dumps(d) #list to json l=["cui",20,88] print json.dumps(l) #object to json class Student(object): ""...
  • Python 怎么获取json 里的特定的某个值如果孤独的人愿意回头,焦躁的人愿意等候,内向的人愿意开口,也许这才是爱情最真的样子。”首先我们要导入json包,新建一个对象。 真正的爱情并不一定是他人眼中的完美匹配,...
  • python中将json转换为字符串

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,548
精华内容 29,019
关键字:

pythonjson

python 订阅