【问题标题】:Remove Key from json/Dict Python从 json/Dict Python 中删除密钥
【发布时间】:2021-03-31 17:53:11
【问题描述】:

我正在尝试从我的 json 输出中删除一些键、值,但似乎没有任何效果。

代码解决方案基本上是将csv转换为json,然后从中删除不需要的键。

import csv, json
import pandas as pd
import os

def make_json(csvFilePath, jsonFilePath):
    data = {}
    with open(csvFilePath, encoding='utf-8') as csvf:
        csvReader = csv.DictReader(csvf)
        for rows in csvReader:
            
            key = rows['ipadd']
            data[key] = rows
            #used del but not working as expected
            #del data['number']
    with open(jsonFilePath, 'w', encoding='utf-8') as jsonf:
        jsonf.write(json.dumps(data, indent=4))


csvFilePath = r'csvfile.csv'
jsonFilePath = r'demo.json'

make_json(csvFilePath, jsonFilePath)

我试过del data['key_name']。 想在创建 json 之前操作 csv,但是 key 不能用于创建 json。

{
    "some_random_key": {
        "number": "12345",
        "ipadd": "some_random_key",
        "version": "0",
        "name": "superman",
        "devicename": "0",
        "osversion": "0"
    },
    "some_random_key2": {
        "number": "54321",
        "ipadd": "some_random_key2",
        "version": "0",
        "name": "batman",
        "devicename": "0",
        "osversion": "0"
    }
}

预期结果:

{
    "some_random_key": {
        "version": "0",
        "name": "superman",
        "devicename": "0",
        "osversion": "0"
    },
    "some_random_key2": {
        "version": "0",
        "name": "batman",
        "devicename": "0",
        "osversion": "0"
    }
}

【问题讨论】:

  • 我尝试使用 del data['key_name']。考虑在创建 json 之前操作 csv,但随后无法创建 json 的密钥 - 复制字典。

标签: python json pandas


【解决方案1】:

您正在寻找 dict.pop(),这正是您所需要的。

【讨论】:

    猜你喜欢
    • 2012-07-06
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-26
    相关资源
    最近更新 更多