无法通过删除python中的垃圾值将csv转换为数组json?

无法通过删除python中的垃圾值将csv转换为数组json?,python,json,python-3.x,csv,Python,Json,Python 3.x,Csv,我正在尝试使用下面的代码将csv转换为json def transForm_csv_to_Json(): with open("F://employee.csv") as csvFile: csvReader= csv.DictReader(csvFile ,delimiter='') for row in csvReader: id = row['firstName'] empl

我正在尝试使用下面的代码将csv转换为json

def transForm_csv_to_Json():
    with open("F://employee.csv") as csvFile:
        csvReader= csv.DictReader(csvFile ,delimiter='')

        for row in csvReader:
            id = row['firstName']
            employeeJson[id]=dict(row)
   print(employeeJson)
输出 如图所示,它打印垃圾值“ï”。如何删除这些值?我还需要添加新的密钥作为员工

预期
如果有人能在这方面提供帮助,我们将不胜感激。

您还没有提供用于重现问题的输入文件,但mojibake看起来像是一个被误解的UTF-8 BOM。使用以下命令:

with open("F://employee.csv",encoding='utf-8-sig',newline='') as csvFile:
encoding='utf-8-sig'将在读取utf-8编码的文件(如果存在)时删除BOM,并且根据需要换行符=

完整解决方案:

test.csv:

用户名、职务名称、姓氏、姓氏、首选全名、员工代码、地区、电话号码、电子邮件地址 里拉尼,开发商,罗明,伊拉尼,罗明,伊拉尼,E1,加利福尼亚州,408-1234567,罗明,k。irani@gmail.com 尼拉尼,开发商,尼尔,伊拉尼,尼尔,伊拉尼,加利福尼亚州E2,408-1111,neilrirani@gmail.com 谢谢,程序目录,汤姆,汉克斯,汤姆汉克斯,加利福尼亚州E3,408-222222,tomhanks@gmail.com test.py:

import csv
import json

def transform_csv_to_json():
    with open('test.csv',encoding='utf-8-sig',newline='') as csvFile:
        csvReader= csv.DictReader(csvFile)
        emp_dict = {"Employees":[]}
        for row in csvReader:
            emp_dict['Employees'].append(row)
    return json.dumps(emp_dict,indent=2,ensure_ascii=False)

with open('test.json','w',encoding='utf8') as f:
    f.write(transform_csv_to_json())
test.json:

{ 雇员:[ { 用户ID:rirani, jobTitleName:Developer, 名字:罗明, 姓氏:Irani, 首选全名:Romin Irani, 员工代码:E1, 地区:CA,, 电话号码:408-1234567, 电邮地址:romin.k。irani@gmail.com }, { 用户ID:nirani, jobTitleName:Developer, 名字:尼尔, 姓氏:Irani, 首选全名:尼尔·伊拉尼, 员工代码:E2, 地区:CA,, 电话号码:408-1111111, 电子邮件地址:neilrirani@gmail.com }, { userId:谢谢, jobTitleName:程序目录, 名字:汤姆, 姓:汉克斯, 首选全名:汤姆·汉克斯, 员工代码:E3, 地区:CA,, 电话号码:408-222222, 电子邮件地址:tomhanks@gmail.com } ] } 为什么您的代码有分隔符='ï»?用于生成实际输出的示例输入在哪里?
with open("F://employee.csv",encoding='utf-8-sig',newline='') as csvFile:
import csv
import json

def transform_csv_to_json():
    with open('test.csv',encoding='utf-8-sig',newline='') as csvFile:
        csvReader= csv.DictReader(csvFile)
        emp_dict = {"Employees":[]}
        for row in csvReader:
            emp_dict['Employees'].append(row)
    return json.dumps(emp_dict,indent=2,ensure_ascii=False)

with open('test.json','w',encoding='utf8') as f:
    f.write(transform_csv_to_json())