JSON字符串用json.dumps, json.loads JSON文件名用json.dump, json.load
以下内容摘自:《Python Cookbook》
json 模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps() 和 json.loads() , 要比其他序列化函数库如pickle的接口少得多。 下面演示如何将一个Python数据结构转换为JSON:
# !/usr/bin/python2.7 # -*- coding:utf-8 -*- import json data = { 'name' : 'ACME', 'shares' : 100, 'price' : 542.23 } json_str = json.dumps(data) print "type(data)",type(data) print "type(json_str)",type(json_str) data_dict = json.loads(json_str) print "type(data_dict)",type(data_dict) data_eval=eval(json_str) print "type(data_eval)",type(data_eval)
json_str = json.dumps(data)
下面演示如何将一个JSON编码的字符串转换回一个Python数据结构:
data_dict = json.loads(json_str)
如果你要处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码JSON数据。例如:
# Writing JSON data with open('test_data.json', 'w') as f: json.dump(data, f) # Reading data back with open('test_data.json', 'r') as f: result = json.load(f) print result print "type(result)",type(result)
运行结果如下:
type(data) <type 'dict'>
type(json_str) <type 'str'>
type(data_dict) <type 'dict'>
type(data_eval) <type 'dict'>
{u'price': 542.23, u'name': u'ACME', u'shares': 100}
type(result) <type 'dict'>
Python eval() 函数
描述
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
语法
以下是 eval() 方法的语法:
eval(expression[, globals[, locals]])
参数
expression -- 表达式。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
返回值
返回表达式计算结果。
实例
以下展示了使用 eval() 方法的实例:
x=7 print eval('3*7') # 21 print eval('pow(2,4)') # 16 print eval('2+4') # 6 n=81 print eval('n+4') # 85
参考:https://www.cnblogs.com/everfight/p/json_file.html
http://www.runoob.com/python/python-func-eval.html