如何把一个json文件转换成字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把一个json文件转换成字符串相关的知识,希望对你有一定的参考价值。
1、说明:json文件本身就是字符串文件,使用open函数就可以得到文件字符串内容,如果要解析文件则使用python3通过json模块load函数来实现。
2、代码示例:
首先编写一个json文件j.txt,内容如下:
"errno":1,"errmsg":"操作成功!","data":[]
python代码如下:
import json
# 读取文件内容
whth open(\'j.txt\', \'r\') as fr:
print(fr.read())
输出如下:
"errno":1,"errmsg":"操作成功!","data":[]
# 解析json文件
with open(\'j.txt\', \'r\') as fr:
o = json.load(fr)
print(o[\'errno\'])
print(o[\'errmsg\'])
print(len(o[\'data\']))
输出如下:
1
操作成功!
0
3、函数说明:
load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
反序列化fp(一个.read()包含 - 支持类文件对象一个JSON文件),以一个Python对象。
object_hook是将与被调用的可选功能任何对象文本解码(一个``dict``)的结果。返回值object_hook将用来代替dict。此功能可用于实现自定义解码器(例如JSON-RPC级提示)。
object_pairs_hook是将与被调用的可选功能任何对象的结果与对的有序列表字面解码。该的返回值object_pairs_hook将用来代替dict。
此功能可用于实现依赖于定制解码器命令该键和值对被解码(例如,collections.OrderedDict会记得插入的顺序)。如果object_hook也定义了object_pairs_hook优先。
要使用自定义JSONDecoder子类,与cls指定它kwarg;否则JSONDecoder使用。
4、其它说明:
也可以使用json.loads函数来直接处理字符串,方法如下:
o=json.loads(\'"errno":0,"errmsg":"操作成功!","data":[]\') 参考技术A 1>jQuery插件支持的转换方式:
代码如下:
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象
2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:
代码如下:
JSON.parse(jsonstr); //可以将json字符串转换成json对象
JSON.stringify(jsonobj); //可以将json对象转换成json对符串
注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。
3>javascript支持的转换方式:
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。
4>JSON官方的转换方式:
http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;
可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。本回答被提问者采纳
pythhon_如何读取json数据
案例:
在web应用中常常用到json数据进行传输数据,本质上是字典类型数据转换成字符串,通过字符串进行网页传输,然后把接收到的字符串转换成字典类似数据
需求:实现字典转换成字符串,字符串转换成字典数据类型,写入文件
如何做?
- 明确dumps和dump的区别,dump的接口是文件,直接写入文件,dumps把对应的数据类型转换成字符串,loads 和dumps相反,load直接从文件中读取文件并把数据转换成对应的数据类型
- 先进行数据转换,字符串作为中间桥梁
#!/usr/bin/python3 import json def w_json(data): # 往文件中写入json文件 with open(‘json_test.json‘, ‘w‘) as wf: json.dump(data, wf) print(‘ok‘) def r_json(): # 读取json文件 with open(‘json_test.json‘, ‘r‘) as rf: data = json.load(rf) return data def chage_data(data): # 进行json数据转换 try: # separators 会把对应符号前后的空格去掉,网络传输中,空格没有意义 # 还可以通过sort_keys进行按字典可以排序,字典才有效,网络传输一般都用json数据格式 return json.dumps(data, separators=[‘,‘, ‘:‘], sort_keys=True) except Exception as e: print(e) return None if __name__ == ‘__main__‘: d = {‘xiao_ming‘: 18, ‘xiao_er‘: 50, ‘xiao_san‘: 17, ‘xu_xue‘: None, ‘b_l‘:True} # d = [8, 2, 2, 7, 0, None, True] data = chage_data(d) if data: w_json(data) r_data = r_json() print(‘读取的数据:‘, r_data)
以上是关于如何把一个json文件转换成字符串的主要内容,如果未能解决你的问题,请参考以下文章