簡體   English   中英

如何遍歷 CSV 文件並僅將具有特定值的 csv 行寫入 JSON 中的另一個文件?

[英]how to iterate through a CSV file and write to another file in JSON only the csv rows with a certain value?

我正在嘗試獲取 csv 文件並對其進行迭代,並且僅獲取具有藍色類別的行並將其寫入 JSON 文件。 到目前為止,我已經創建了一個程序,它將所有 csv 行寫入 JSON 文件。 我不太清楚如何 select 只有某些 csv 線具有一定的價值。 這是帶有此 output 的程序

import csv
import json


def csv_to_json(csvFilePath, jsonFilePath):
    jsonArray = []

    with open(csvFilePath, encoding='utf-8') as csvf:
        csvReader = csv.DictReader(csvf)

        for row in csvReader:
            jsonArray.append(row)

    with open(jsonFilePath, 'w', encoding='utf-8') as jsonf:
        jsonString = json.dumps(jsonArray, indent=4)
        jsonf.write(jsonString)


csvFilePath = r'csv_example.csv'
jsonFilePath = r'reader.json'
csv_to_json(csvFilePath, jsonFileP

output:

[
    {
        "id": "1",
        "category": "blue",
        "password": "hi"
    },
    {
        "id": "2",
        "category": "red",
        "password": "no"
    },
    {
        "id": "3",
        "category": "blue",
        "password": "lol"
    },
    {
        "id": "4",
        "category": "yellow",
        "password": "yo"
    },
    {
        "id": "5",
        "category": "yellow",
        "password": "sup"
    },
    {
        "id": "6",
        "category": "orange",
        "password": "hello"
    },
    {
        "id": "7",
        "category": "blue",
        "password": "yeah"
    }
]

以這個 csv 文件為例

"id","category","password"
"1","blue","hi"
"2","red","no"
"3","blue","lol"
"4","yellow","yo"
"5","yellow","sup"
"6","orange","hello"
"7","blue","yeah"

我將如何使它只有具有藍色類別的行被寫入 JSON 文件。 我試過了

if row.category == 'blue'

但這顯然行不通

由於每一行都由 DictReader 轉換為 python 字典,因此您只需在一個 position 處擴展您的代碼。

for row in csvReader:
   if row["category"] != "blue":
      continue
   jsonArray.append(row)

if row["category"]:= "blue":檢查該行中關鍵類別的值是否不是藍色的。 如果該行不是藍色的,代碼將continue下一行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM