题目
在Django实战中实用的数据格式转换
csv转json
步骤:
- 使用pandas读取csv文件,index_col=False第一列为index值
data = pd.read_csv(path, index_col=False)
- 用一个dict()读取data中的数据
i.e.
假设你的csv文件里有两列,一般变为json格式都是两列
如果超过两列,可以尝试将其中一列作为key,剩下的列合并为一个list作为value
两列
'''
Description: demo测试数据处理
Autor: 365JHWZGo
Date: 2022-01-19 11:46:04
LastEditors: 365JHWZGo
LastEditTime: 2022-01-19 12:12:16
'''
import pandas as pd
import json
path = './demo.csv'
data = pd.read_csv(path, index_col=False)
# print(data)
'''
姓名 年龄
0 张三 12
1 李四 13
2 王五 14
'''
result = dict()
for i in range(len(data)):
temp = {}
age = data.iloc[i]['年龄']
name = data.iloc[i]['姓名']
temp['age'] = str(age)
temp['name'] = name
result['person%d'%i] = temp
# print(result)
'''
{'person0': {'age': 12, 'name': '张三'}, 'person1': {'age': 13, 'name': '李四'}, 'person2': {'age': 14, 'name': '王五'}}
'''
with open('./demo.json', 'w') as f:
json.dump(result,f,ensure_ascii=False)
多列
合并前
合并后
多列处理方法同上,这里不再累述
json转csv
import codecs
import json
import csv
f = open('./demo.json')
data = json.load(f)
f.close()
f = codecs.open('./demo.csv', 'w', 'utf_8_sig')#解决写入csv时中文乱码
writer=csv.writer(f)
writer.writerow(["年龄","姓名"])
for v in data.values():
# person0 {'age': '12', 'name': '张三'}
writer.writerow([v['age'],v['name']])
f.close()