无法通过删除python中的垃圾值将csv转换为数组json?
我正在尝试使用下面的代码将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
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())