【问题标题】:I am trying to convert from csv to json and it gives an error because missing values我正在尝试从 csv 转换为 json 并且它给出了一个错误,因为缺少值
【发布时间】:2021-12-14 03:25:21
【问题描述】:

我正在尝试从 csv 转换为 json,但由于reader_row[10] 缺少值,因此出现错误。如何将缺失值替换为 Null?然后写。

l = []

with open("data.csv", 'r') as data_file:

    reader = csv.reader(data_file)
    headers = next(reader)
    for reader_row in reader:
        d = {}
        d[headers[11]] = str(reader_row[11])
        d[headers[13]] = str(reader_row[13])
        d[headers[14]] = str(reader_row[14])
        d[headers[18]] = str(reader_row[18])
        d[headers[3]] = int(reader_row[3])
        d[headers[16]] = bool(reader_row[16])
        d[headers[4]] = float(reader_row[4])
        d[headers[5]] = str(reader_row[5])
        d[headers[10]] = int(reader_row[10]) 
        d[headers[17]] = int(reader_row[17])
        d[headers[15]] = int(reader_row[15])
        d[headers[0]]={'Address Street': str(reader_row[0]),
                       'Address City': str(reader_row[1]),
                       'Address Postcode': str(reader_row[2])
                       }
        d[headers[8]]={'Credit Card Number': str(reader_row[8]),
                       'Credit Card Start Date': str(reader_row[6]),
                       'Credit Card Expiry Date': str(reader_row[7]),
                       'Credit Card CVV': int(reader_row[9]),
                       'Bank IBAN' : str(reader_row[12])
                       }
        d[headers[19]]={'Vehicle Make': str(reader_row[19]),
                        'Vehicle Model': str(reader_row[20]),
                        'Vehicle Year': int(reader_row[21]),
                        'Vehicle Type': str(reader_row[22])
                        }
        l.append(d)

【问题讨论】:

  • 使用if 语句来测试是否填写了reader_row[10]。为什么会出现这个问题?
  • 现在您收到row_reader[10] 的此错误,但也可能存在其他此类情况,为什么不使用pandas.read_csv 读取csv 并使用fillna 替换具有所需值的空值。可以参考geeksforgeeks.org/…

标签: python json python-3.x csv nested


【解决方案1】:

如果reader_row[10] 为空,您可以使用条件运算符分配None

        d[headers[10]] = int(reader_row[10]) if reader_row[10] else None

【讨论】:

    猜你喜欢
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多