在将 CSV 文件转换为 JSON 时,我遇到了一个有趣的问题。我根据 SQLite 查询的输出生成一个 CSV 文件并将其写入硬盘。
然后,我使用 Pandas 将 CSV 文件加载到我的脚本中:
import pandas as pd
df_var = pd.read_csv('input.csv',header=0, low_memory=False)
Run Code Online (Sandbox Code Playgroud)
我使用了low_memory选项,因为数据帧由多种数据类型组成。如果有人建议的话,我并不反对将所有内容存储为字符串值。
数据帧的每一行代表一条记录(每条记录有 144 个字段/列),因此我一次剥离一行并将其输入到我构建的一个类中,以将该行转换为字典(这是在类内部):
class CSVParser:
def __init__(self, recordid, tjson={}):
self.recordid = recordid
self.json = tjson
def create_json(self, df):
o_dict = {
'root': {
'id': {
'field1':df['field1'],
'field2':df['field2'],
'field3':self.recordid,
},
'core': {
'field1':df['field1'],
'field2':df['field2'],
'field3':df['field3'],
'field4':df['field4'],
'field5':df['field5'],
'field6':df['field6'],
},
#REMAINING RECORDS LEFT OUT FOR BREVITY
}
}
self.json.append(o_dict)
Run Code Online (Sandbox Code Playgroud)
从这里我将 JSON 写入磁盘
def write_json(self):
#if self is …Run Code Online (Sandbox Code Playgroud)