详解python中的json的基本使用方法_python

在Python中使用json的时候,主要也就是使用json模块,json是以一种良好的格式来进行数据的交互,从而在很多时候,可以使用json数据格式作为程序之间的接口。

#!/usr/bin/env python
#-*- coding:utf-8 -*-
import json 

print json.load(open('kel.txt'))
#deserialize string or unicode to python object
j = json.loads(open('kel.txt').read(),encoding='utf-8')
print type(j),j
for i in j:
  print i
k = json.dumps(j,encoding='utf-8').decode('utf-8')
print k

kel.txt文件内容如下:

{
  "中文":"kel",
  "fist":"kel"
} 

执行结果如下:

{u'\u4e2d\u6587': u'kel', u'fist': u'kel'}
<type 'dict'> {u'\u4e2d\u6587': u'kel', u'fist': u'kel'}
中文
fist
{"\u4e2d\u6587": "kel", "fist": "kel"} 

在其中主要使用的方法为json.loads和json.dumps

注意在loads中参数必须为string,从而在打开文件的时候,要使用read方法,否则会出错。

loads方法主要是用来加载json数据变成python中的对象,而dumps方法主要是将python对象修改为json格式。

开始遇到一个错误如下:

[root@python 56]# python kel.py
Traceback (most recent call last):
 File "kel.py", line 5, in <module>
  json.load(open('kel.txt'))
 File "/usr/local/python/lib/python2.7/json/__init__.py", line 291, in load
  **kw)
 File "/usr/local/python/lib/python2.7/json/__init__.py", line 339, in loads
  return _default_decoder.decode(s)
 File "/usr/local/python/lib/python2.7/json/decoder.py", line 364, in decode
  obj, end = self.raw_decode(s, idx=_w(s, 0).end())
 File "/usr/local/python/lib/python2.7/json/decoder.py", line 382, in raw_decode
  raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded 

主要原因是因为,,,在json的数据格式中必须是双引号开头的,错误的json文件如下:

 {
  "fist":'kel'
} 

kel.py内容如下:

 #!/usr/bin/env python
#-*- coding:utf-8 -*-
import json
j = json.loads(open('kel.txt').read())
print type(j),j     

双引号。。。单引号,傻傻的分不清楚

有的时候,在进行loads方法的时候,就是因为产生了单引号的字符串。。。在python中尤其如此,和其他的东西没啥关系,主要就是引号的关系!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索python
, json方法
, python使用json
python中的json
python json模块详解、python json详解、python魔术方法详解、python json方法、python实例方法详解,以便于您获取更多的相关知识。

时间: 2025-01-02 07:36:02

详解python中的json的基本使用方法_python的相关文章

举例详解Python中的split()函数的使用方法_python

函数:split() Python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list) os.path.split():按照路径将文件名和路径分割开 一.函数说明1.split()函数 语法:str.split(str="",num=string.count(str))[n] 参数说明: str:   表示为分隔符,默认为空格,但是不能为空('').若字符串中没有分隔

详解Python中用于计算指数的exp()方法

  这篇文章主要介绍了详解Python中用于计算指数的exp()方法,是Python入门中必会的基本方法,需要的朋友可以参考下 exp()方法返回指数x: ex. 语法 以下是exp()方法的语法: ? 1 2 3 import math   math.exp( x ) 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数. 参数 x -- 这是一个数值表达式 返回值 此方法返回指数x: ex. 例子 下面的例子显示了exp()方法的使用. ?

详解Python中的type()方法的使用

  这篇文章主要介绍了详解Python中的type()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下 type()方法返回传递变量的类型.如果传递变量是字典那么它将返回一个字典类型. 语法 以下是type()方法的语法: ? 1 type(dict) 参数 dict -- 这是字典 返回值 此方法返回传递变量的类型. 例子 下面的例子显示type()方法的使用 ? 1 2 3 4 #!/usr/bin/python   dict = {'Name': 'Zara', 'Age'

详解Python中的序列化与反序列化的使用

  这篇文章主要介绍了详解Python中的序列化与反序列化的使用,针对pickle和cPickle对象进行了探究,需要的朋友可以参考下 学习过marshal模块用于序列化和反序列化,但marshal的功能比较薄弱,只支持部分内置数据类型的序列化/反序列化,对于用户自定义的类型就无能为力,同时marshal不支持自引用(递归引用)的对象的序列化.所以直接使用marshal来序列化/反序列化可能不是很方便.还好,python标准库提供了功能更加强大且更加安全的pickle和cPickle模块. cP

举例详解Python中smtplib模块处理电子邮件的使用

  这篇文章主要介绍了举例详解Python中smtplib模块处理电子邮件的使用,是Python入门学习中的基础知识,需要的朋友可以参考下 在基于互联网的应用中,程序经常需要自动地发送电子邮件.如:一个网站的注册系统会在用户注册时发送一封邮件来确认注册;当用户忘记登陆密码的时候,通过邮件来取回密码.smtplib模块是python中smtp(简单邮件传输协议)的客户端实现.我们可以使用smtplib模块,轻松的发送电子邮件.下面的例子用了不到十行代码来发送电子邮件: ? 1 2 3 4 5 6

详解Python中threading模块的几个常用方法

  这篇文章主要介绍了举例详解Python中threading模块的几个常用方法,threading模块用来创建和操作线程,是Python学习当中的重要知识,需要的朋友可以参考下 threading.Thread Thread 是threading模块中最重要的类之一,可以使用它来创建线程.有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法;另一种是创建一个threading.Thread对象,在它的初始化函数(__init__)中将可调用对象作为参数传入.下面分别举例说明.

详解Python中writelines()方法的使用

  这篇文章主要介绍了详解详解Python中writelines()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下 writelines()方法写入字符串序列到文件.该序列可以是任何可迭代的对象产生字符串,字符串为一般列表.没有返回值. 语法 以下是writelines()方法的语法: ? 1 fileObject.writelines( sequence ) 参数 sequence -- 这是字符串的序列. 返回值 此方法不返回任何值. 例子 下面的例子显示writeli

详解Python中的strftime()方法的使用

  这篇文章主要介绍了详解Python中的strftime()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下 strftime()方法转换成一个元组或struct_time表示时间所指定的格式参数所返回gmtime()或localtime()为一个字符串. 当t不设置,所返回当前时间使用localtime()方法.格式必须是字符串.异常ValueError被挂起,如果t在任何字段的允许范围之外. 语法 以下是strftime()方法的语法: ? 1 time.strftim

详解Python中time()方法的使用的教程

  这篇文章主要介绍了详解Python中time()方法的使用的教程,是Python入门学习中的基础知识,需要的朋友可以参考下 time()方法返回时间,在UTC时代以秒表示浮点数. 注意:尽管在时间总是返回作为一个浮点数,并不是所有的系统提供时间超过1秒精度.虽然这个函数正常返回非递减的值,就可以在系统时钟已经回来了两次调用期间返回比以前调用一个较低的值. 语法 以下是time()方法的语法: 参数 NA 返回值 此方法返回的时间,因为时代以秒表示浮点数(在UTC). 例子 下面的例子显示ti