一、Python轉(zhuǎn)換JSON的概念
JavaScript對(duì)象表示法(JSON),是一種輕量級(jí)的數(shù)據(jù)格式,是現(xiàn)代的數(shù)據(jù)交換格式。它基于JavaScript語言的一個(gè)子集,易于人類閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。Python中,我們可以將Python對(duì)象轉(zhuǎn)換為JSON格式,也可以將JSON格式解析為Python對(duì)象。
二、Python對(duì)象轉(zhuǎn)換為JSON
Python中,我們可以使用json模塊來執(zhí)行Python對(duì)象轉(zhuǎn)換為JSON格式。json模塊中,有兩個(gè)主要的方法:
* dumps: 序列化,將Python對(duì)象轉(zhuǎn)換為JSON格式的字符串
* dump: 序列化,將Python對(duì)象轉(zhuǎn)換為JSON格式的字符串并將其寫入文件
示例代碼:
import json
# Python字典
person_dict = {'name': 'Tom', 'age': 25, 'city': 'New York'}
# 轉(zhuǎn)換為JSON
person_json = json.dumps(person_dict)
# 輸出為JSON字符串
print(person_json)
輸出結(jié)果:
{"name": "Tom", "age": 25, "city": "New York"}
三、JSON轉(zhuǎn)換為Python對(duì)象
Python中,我們可以使用json模塊來執(zhí)行JSON格式轉(zhuǎn)換為Python對(duì)象。json模塊中,有兩個(gè)主要的方法:
* loads: 反序列化,將JSON格式的字符串轉(zhuǎn)換為Python對(duì)象
* load: 反序列化,將存儲(chǔ)在文件中的JSON格式的數(shù)據(jù)轉(zhuǎn)換為Python對(duì)象
示例代碼:
import json
# JSON字符串
person_json = '{"name": "Tom", "age": 25, "city": "New York"}'
# 轉(zhuǎn)換為Python字典
person_dict = json.loads(person_json)
# 輸出為Python字典
print(person_dict)
輸出結(jié)果:
{'name': 'Tom', 'age': 25, 'city': 'New York'}
四、Python對(duì)象轉(zhuǎn)換為JSON可選參數(shù)
在轉(zhuǎn)換Python對(duì)象為JSON格式時(shí),我們可以使用一些可選參數(shù)來格式化JSON字符串。以下是一些常用的可選參數(shù):
* indent: 縮進(jìn)空格的數(shù)量
* separators: 分隔符號(hào)
* sort_keys: 是否按照字母順序?qū)︽I進(jìn)行排序
示例代碼:
import json
# Python字典
person_dict = {'name': 'Tom', 'age': 25, 'city': 'New York'}
# 轉(zhuǎn)換為JSON字符串并格式化
person_json = json.dumps(person_dict, indent=4, separators=(',', ': '), sort_keys=True)
# 輸出為JSON字符串
print(person_json)
輸出結(jié)果:
{
"age": 25,
"city": "New York",
"name": "Tom"
}
五、JSON轉(zhuǎn)換為Python對(duì)象可選參數(shù)
在轉(zhuǎn)換JSON字符串為Python對(duì)象時(shí),我們可以使用一些可選參數(shù)來更好地解析JSON數(shù)據(jù)。以下是一些常用的可選參數(shù):
* object_hook: 對(duì)每個(gè)字典進(jìn)行操作的函數(shù)
* parse_float: 將所有浮點(diǎn)數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)
* parse_int: 將所有整數(shù)轉(zhuǎn)換為整數(shù)
* parse_constant: 對(duì)除數(shù)NaN和Infinity之外的其他常量進(jìn)行操作的函數(shù)
示例代碼:
import json
# JSON字符串
person_json = '{"name": "Tom", "age": 25, "city": "New York"}'
# 使用object_hook將JSON轉(zhuǎn)為Python對(duì)象
person_dict = json.loads(person_json, object_hook=lambda d: {k.lower(): v for k, v in d.items()})
# 輸出為Python字典
print(person_dict)
輸出結(jié)果:
{'name': 'Tom', 'age': 25, 'city': 'New York'}
六、python批量處理多個(gè)json文件合并到一個(gè)CSV文件
import csv
import glob
import json
# 獲取JSON文件列表
json_files = glob.glob('*.json')
# 打開CSV文件
with open('output.csv', 'w', newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
# 遍歷JSON文件
for json_file in json_files:
with open(json_file, 'r', encoding='utf-8') as f:
# 讀取JSON文件中的行
lines = f.readlines()
# 遍歷JSON文件中的行
for line in lines:
# 將JSON數(shù)據(jù)轉(zhuǎn)換為Python字典
data = json.loads(line)
# 寫入CSV文件
writer.writerow([data['name'], data['age'], data['city']])
以上就是關(guān)于Python轉(zhuǎn)換JSON的完整指南。希望可以幫助你更好地使用Python進(jìn)行JSON格式數(shù)據(jù)處理。