python中解析json格式文件的方法示例

 更新时间:2017年05月03日 10:54:40   作者:Myths  
这篇文章主要给大家介绍了python中解析json格式文件的相关资料,解析json文件就是编码和解码,本文还介绍了在解析中可能遇到的问题与解决方法,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

本文主要介绍的是python中解析json格式文件的方法,解析json文件无非编码和解码,这里我们用了python下自带的json模块。当然还要结合python本身特有的dict类型的操作。下面来看看详细的介绍吧。

编码

编码用到的是json.dumps()函数,将字典转化为json对象。

import json
data = [{'a':"A",'b':(2,4),'c':3.0}] #list对象
print "DATA:",repr(data)
data_string = json.dumps(data)#dumps函数
print "JSON:",data_string

输出的结果是:

DATA: [{'a':'A','c':3.0,'b':(2,4)}] #python的dict类型的数据是没有顺序存储的
JSON: [{"a":"A","c":3.0,"b":[2,4]}]

解码

解码用json.loads()函数,将json格式转化为dict。

import json
data = '{"a":"A","b":[2,4],"c":3.0}' #json格式
decoded = json.loads(data)
print "DECODED:",decoded

输出的结果是

DECODED: [{u'a': u'A', u'c': 3.0, u'b': [2, 4]}]

编码和解码的过程中,元组会被变成无次序的列表,而字典的次序也并不能保证不变。

现在,处理json格式的重点便成了正确处理dict类型数据了。

常见错误

python的json模块不支持单引号,所以类似"{'a':'A','b':[2,4],'c':3.0}"的字符串是会报以下错误的:

ValueError: Expecting property name: line 1 column 2 (char 1)

这时候我们只需要把他单双引号互换即可:

'{"a":"A","b":[2,4],"c":3.0}'

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 通过python实现Google的精准搜索功能

    通过python实现Google的精准搜索功能

    这篇文章主要介绍了通过python实现Google的精准搜索功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-05-05
  • python opencv鼠标画点之cv2.drawMarker()函数

    python opencv鼠标画点之cv2.drawMarker()函数

    这篇文章主要给大家介绍了关于python opencv鼠标画点之cv2.drawMarker()函数的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用opencv具有一定的参考下学习价值,需要的朋友可以参考下
    2021-10-10
  • 简单实现python爬虫功能

    简单实现python爬虫功能

    这篇文章主要介绍了python实现简单爬虫功能的相关资料,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 公认8个效率最高的爬虫框架

    公认8个效率最高的爬虫框架

    在本篇文章里小编给大家整理的是关于2020年8个效率最高的爬虫框架知识点,需要的朋友们可以学习下。
    2020-07-07
  • 浅析Python的命名空间与作用域

    浅析Python的命名空间与作用域

    这篇文章主要介绍了Python的命名空间与作用域的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-11-11
  • Python使用Matplotlib绘制散点趋势线的代码详解

    Python使用Matplotlib绘制散点趋势线的代码详解

    Matplotlib是一个用于数据可视化的强大Python库,其基本功能之一是创建带有趋势线的散点图,散点图对于可视化变量之间的关系非常有用,本文将指导您使用Matplotlib绘制散点趋势线的过程,涵盖线性和多项式趋势线,需要的朋友可以参考下
    2025-01-01
  • Python爬虫爬取微信朋友圈

    Python爬虫爬取微信朋友圈

    这篇文章主要介绍了Python爬虫爬取微信朋友圈的方法,文中讲解非常细致,帮助大家更好的理解和学习Python爬虫,感兴趣的朋友可以了解下
    2020-08-08
  • Python shutil模块文件和目录操作示例详解

    Python shutil模块文件和目录操作示例详解

    本文将会学习到 shutil 模块,包括其主要功能和示例代码,以帮助你更好地理解如何使用它来处理文件和目录
    2023-11-11
  • tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法

    tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法

    今天小编就为大家分享一篇tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • PyTorch中self.layers的使用小结

    PyTorch中self.layers的使用小结

    self.layers 是一个用于存储网络层的属性,本文主要介绍了PyTorch中self.layers的使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01

最新评论