我是一个有用的助手,可以翻译文本。
我刚开始学习 Python,需要将一个 CSV 文件转换成以下格式的 JSON:
CSV 文件:
JSON格式:
我刚开始学习 Python,需要将一个 CSV 文件转换成以下格式的 JSON:
CSV 文件:
firstname, lastname, email, customerid, dateadded, customerstatus
john, doe, john.doe@do.com, 124,26/11/18,active
jane, doe, jane.doe@do.com, 125,26/11/18,active
JSON格式:
{
firstname: "John",
lastname: "Doe",
emailOrPhone: "john.doe@do.com",
extraFields: [{
name: "customerid",
value: "124"
},
{
name: "dateadded",
value: "26/11/18"
},
{
name: "dateadded",
value: "26/11/18"
}
]
}, {
firstname: "Jane",
lastname: "Doe",
emailOrPhone: "Jane.doe@do.com",
extraFields: [{
name: "customerid",
value: "125"
},
{
name: "dateadded",
value: "26/11/18"
},
{
name: "dateadded",
value: "26/11/18"
}
]
}
current code I am using:
import requests
import json
import time
import csv
import json
import glob
import os
import logging
for filename in glob.glob('D:\\api\\Extract.csv'):
csvfile = os.path.splitext(filename)[0]
jsonfile = csvfile + '.json'
with open(csvfile+'.csv') as f:
reader = csv.DictReader(f)
rows = list(reader)
with open(jsonfile, 'w') as f:
json.dump(rows, f)
url = 'api_url'
with open("D:\\api\\Extract.json", "r") as read_file:
data = json.load(read_file)
for item in data:
headers = {"Authorization" : "key", "Content-Type" : "application/json"}
r = requests.post(url, data= json.dumps(item), headers= headers)
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(message)s',
handlers=[logging.FileHandler("D:\\api\\log_file.log"),
logging.StreamHandler()])
我可以产生JSON格式的父级值,但我不确定如何获取子节点,并将列名称解析为值并像那样迭代整个文件。
上述代码将CSV转换为简单的JSON对象,我想要实现嵌套对象。我在考虑可能添加操作是解决方案,但不确定如何将列作为值传递以及相应数据作为值。