本文实例讲述了Python实现的读写json文件功能。分享给大家供大家参考,具体如下:
相比java,python对json文件的处理就简单很多。java操作json文件的话需要引用jar包及相关依赖包,想用java操作json的同学可以去百度,这里就不赘述了。
首先说读json文件
在进行json操作之前,首先要了解json的格式,分辨json文件。
json文件格式一般有两种:
第一种:每行一个json类似于以下这种形式:
1
2
|
[ "name" : "Tony" , "age" : "21" , "hobbies" : [ "basketball" , "tennis" ]]
[ "name" : "Lisa" , "age" : "20" , "hobbies" : [ "sing" , "dance" ]]
|
这种json格式是每一行是一个json,行与行之间没有关联。
第二种:一个文件写成一个大的json
1
2
3
4
|
[
{ "name" : "Tony" , "age" : "21" , "hobbies" : [ "basketball" , "tennis" ]},
{ "name" : "Lisa" , "age" : "20" , "hobbies" : [ "sing" , "dance" ]}
]
|
这种格式每条记录之间用,连接。
下面读取json文件,利用json.load
函数
1
2
3
|
f = open ( '/home/codergray/company/test_2.json' )
#将json格式的数据映射成list的形式
t = json.load(f)
|
所以t是一个list,按照正常访问list的方法访问就可以。
1
2
|
str = t[ 0 ][ 'name' ]
print str
|
输出:
Tony
以上面的例子为例,访问t[0]也就是第一条json记录[‘name']代表name字段,因而就读出了值“Tony”
写json文件
写json一般是上文提到的json格式的第二种格式,也就是整体是一个大的json。
举个例子:
1
2
3
4
5
6
7
8
|
f = open ( 'result.json' , 'w' )
result = []
temp = {}
temp[ 'name' ] = 'Tony'
temp[ 'age' ] = '21'
tamp[ 'hobbies' ] = [ 'basketball' , 'tennis' ]
result.append(temp)
f.write(json.dumps(result,ensure_ascii = False ))
|
通过以上代码就将一个json写进了result.json文件,当然这个大json里面只有一条记录,如果想插入多条记录可以利用循环。json.dumps
方法可以看作是json.load
的逆过程,将list的数据格式转化为json存在json文件中。
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/coder_Gray/article/details/78395066