🎜json.load(fp)
🎜🎜json 형식 파일에서 데이터를 읽어서 Python 형식으로 변환합니다. 🎜🎜🎜🎜4、 json.dumps() 将python数据类型转换为json格式的字符串。
语法格式 :json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
>>> import json
# Python字典
>>> person = {"name": "小明", "age": 30, "tel": ["888888", "1351111111"], "isonly": True}
>>> print(person)
{'name': '小明', 'age': 30, 'tel': ['888888', '1351111111'], 'isonly': True}
>>> type(person)
<class 'dict'
# Python字典转换为json字符串
>>> jsonStr = json.dumps(person)
>>> print(jsonStr )
{"name": "\u5c0f\u660e", "age": 30, "tel": ["888888", "1351111111"], "isonly": true}
>>> type(jsonStr)
<class 'str'> 로그인 후 복사
로그인 후 복사
从上可以看出json格式和Python格式的区别在于 :python格式打印输出是单引号,类型为dict
。而json格式打印输出是双引号,类型为:str
。True
的开头大小写区别。
使用参数能让JSON字串格式化输出:
>>> print(json.dumps(person, sort_keys=True, indent=4, separators=(',', ': '))){
"age": 30,
"isonly": true,
"name": "\u5c0f\u660e",
"tel": [
"888888",
"1351111111"
]} 로그인 후 복사
로그인 후 복사
参数解读 :
修改分割符类型 :
>>> print(json.dumps(person, sort_keys=True, indent=4, separators=('!', '-'))){
"age"-30! "isonly"-true! "name"-"\u5c0f\u660e"! "tel"-[
"888888"! "1351111111"
] 로그인 후 복사
로그인 후 복사
文件操作 :
import json
person = {"name": "小明", "age": 30, "tel": ["888888", "1351111111"], "isonly": True}jsonStr = json.dumps(person)with open('test.json', 'w', encoding='utf-8') as f: # 打开文件
f.write(jsonStr) # 在文件里写入转成的json串 로그인 후 복사
查看生成的新文件:
5、json.dump() 将python数据类型转换并保存到son格式的文件内。
语法格式 :json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
import json
person = {"name": "小明", "age": 30, "tel": ["888888", "1351111111"], "isonly": True}json.dump(person, open('data.json', 'w')) 로그인 후 복사
查看生成的新文件:使用参数能让JSON字串格式化输出:
import json
person = {"name": "小明", "age": 30, "tel": ["888888", "1351111111"], "isonly": True}json.dump(person, open('data.json', 'w'), sort_keys=True, indent=4, separators=(',', ': ')) 로그인 후 복사
再次查看文件:json.dumps
和json.dump
写入文件的区别 :
6、json.loads() 将json格式的字符串转换为python的类型。
语法格式 :json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
>>> import json# Python字典>>> person = {"name": "小明", "age": 30, "tel": ["888888", "1351111111"], "isonly": True}>>> print(person){'name': '小明', 'age': 30, 'tel': ['888888', '1351111111'], 'isonly': True}>>> type(person)<class 'dict'# Python字典转换为json字符串>>> jsonStr = json.dumps(person) >>> print(jsonStr ){"name": "\u5c0f\u660e", "age": 30, "tel": ["888888", "1351111111"], "isonly": true}>>> type(jsonStr)<class 'str'># json字符串再转换为Python字典>>> python_obj = json.loads(jsonStr)>>> print(python_obj){'name': '小明', 'age': 30, 'tel': ['888888', '1351111111'], 'isonly': True}>>> print(type(python_obj))<class 'dict'># 打印字典的所有key>>> print(python_obj.keys()) dict_keys(['name', 'age', 'tel', 'isonly'])
# 打印字典的所有values>>> print(python_obj.values()) dict_values(['小明', 30, ['888888', '1351111111'], True]) 로그인 후 복사
文件操作:
import json
f = open('data.json', encoding='utf-8')content = f.read()
# 使用loads()方法需要先读文件
python_obj = json.loads(content)print(python_obj) 로그인 후 복사
输出结果:
7、json.load() 从json格式的文件中读取数据并转换为python的类型。
语法格式 :json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
文件操作 :
import json
python_obj = json.load(open('data.json','r'))print(python_obj)print(type(python_obj)) 로그인 후 복사
输出结果:
json.load()
和 json.loads()
区别:
8、总结 不管是dump还是load,带s的都是和字符串相关的,不带s的都是和文件相关的
三、XML文件和JSON文件互转 记录工作中常用的一个小技巧
cmd控制台安装第三方模块 :
pip install xmltodict 로그인 후 복사
1、XML文件转为JSON文件 新建一个1.xml
文件:
<note date="23/04/2022">
<to>tom</to>
<from>mary</from>
<msg>love</msg></note> 로그인 후 복사
转换代码实现 :
import jsonimport xmltodictdef xml_to_json(xml_str):
"""parse是的xml解析器,参数需要
:param xml_str: xml字符串
:return: json字符串
"""
xml_parse = xmltodict.parse(xml_str)
# json库dumps()是将dict转化成json格式,loads()是将json转化成dict格式。
# dumps()方法的ident=1,格式化json
json_str = json.dumps(xml_parse, indent=1)
return json_str
XML_PATH = './1.xml' # xml文件的路径with open(XML_PATH, 'r') as f:
xmlfile = f.read()
with open(XML_PATH[:-3] + 'json', 'w') as newfile:
newfile.write(xml_to_json(xmlfile)) 로그인 후 복사
输出结果(生成json文件):
2、JSON文件转换为XML文件 新建test.json
文件:
{
"student": {
"course": {
"name": "math",
"score": "90"
},
"info": {
"sex": "male",
"name": "name"
},
"stid": "10213"
}} 로그인 후 복사
转换代码实现:
import xmltodictimport jsondef json_to_xml(python_dict):
"""xmltodict库的unparse()json转xml
:param python_dict: python的字典对象
:return: xml字符串
"""
xml_str = xmltodict.unparse(python_dict)
return xml_str
JSON_PATH = './test.json' # json文件的路径with open(JSON_PATH, 'r') as f:
jsonfile = f.read()
python_dict = json.loads(jsonfile) # 将json字符串转换为python字典对象
with open(JSON_PATH[:-4] + 'xml', 'w') as newfile:
newfile.write(json_to_xml(python_dict)) 로그인 후 복사
输出结果(生成xml文件):
위 내용은 Python의 json 표준 라이브러리를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
2024-10-13 11:44:01
2024-10-13 09:56:31
2024-10-11 20:58:41
2024-10-11 16:53:11
2024-10-11 11:54:51
2024-10-10 16:21:01
2024-10-10 15:18:02
2024-10-10 13:34:01
2024-10-10 13:26:26
2024-10-10 11:38:42