如何将CSV转换成格式化的json?

2024-09-27 07:32:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一个csv文件格式化为json,我已经看了一些文章,但由于预期的输出,我仍然不确定。正如您在我的示例中看到的,期望输出有两个不同的“name”变量,但是其中一个是嵌套的。我想知道如何将其合并到我的代码中。你知道吗

我现在已经通过使用json.dumps文件但我不知道该怎么用它。你知道吗

*对不起,我没有把我所做的放进去,给你

*原始csv头如下所示:

ProfileName,Email,IsCheckoutOncePerBilling,CreditCardType,NameOnCard,CardNumber,Cvv,ExpiryDateMonth,ExpiryDateYear,BillingFirstName,BillingLastName,BillingCountry,BillingCity,BillingZipCode,BillingStateOrProvince,BillingPhoneNumber,BillingAddressLine1

JSON结构:

"profiles": {
    "Name": {
      "name": "Name",
      "payment": {
        "email": "email@email.com",
        "phone": "012345678",
        "card": {
          "name": "John Doe",
          "number": "1234 5678 9101 1112",
          "exp_month": "12",
          "exp_year": "3456",
          "cvv": "789"
        }
      },
      "delivery": {
        "first_name": "John",
        "last_name": "Doe",
        "addr1": "123 Fake ST",
        "addr2": "",
        "zip": "1234",
        "city": "Utopia",
        "country": "Temporary",
        "state": "Elsewhere",
        "same_as_del": true
      }
    }
 }

代码:

import csv  
import json

import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
root.withdraw()

# Open the CSV  
csvFilePath = filedialog.askopenfilename()
jsonFilePath = filedialog.askopenfilename()

# Change each fieldname to the appropriate field name.
data = {}
with open(csvFilePath) as csvFile:
    csvReader = csv.DictReader(csvFile)
    for csvRow in csvReader:
        ProfileName = csvRow["ProfileName"]
        data[ProfileName] = csvRow

# Parse the CSV into JSON  
with open(jsonFilePath, "w") as jsonFile:
    jsonFile.write(json.dumps(data, indent = 4))

Tags: csvthe代码nameimportjsondataemail

热门问题