用另一个字典初始化一个Python字典 - python

我想初始化一个字典,并始终为每个键分配一个空的数据结构,然后再使用它。

这是我想要的结果和行为:

data = {
    "record" : {
        "fields_array" : [],
        "df" : pd.DataFrame(),
        "df_fields" : pd.DataFrame(columns = ["name", "units", "field_type", "base_type", "type"]),
        "rows" : []
    },
    "device_info" : {
        "fields_array" : [],
        "df" : pd.DataFrame(),
        "df_fields" : pd.DataFrame(columns = ["name", "units", "field_type", "base_type", "type"]),
        "rows" : []
    },
}

因此,每个键都引用一个唯一的DataFrame或数组。

我想简单地编写如下代码:

data_struct = {  
        "fields_array" : [],
        "df" : pd.DataFrame(),
        "df_fields" : pd.DataFrame(columns = ["name", "units", "field_type", "base_type", "type"]),
        "rows" : []
}

data = {
    "record" : data_struct,
    "device_info" : data_struct,
}

但是,如果我现在使用data["record"]["df"]data["device_info"]["df"],它们将引用相同的DataFrame。

为什么会出现这种情况,如何解决此问题?我必须向data词典添加更多键。

参考方案

使用deepcopy

data = {
    "record" : deepcopy(data_struct),
    "device_info" : deepcopy(data_struct),
}

Python uuid4,如何限制唯一字符的长度 - python

在Python中,我正在使用uuid4()方法创建唯一的字符集。但是我找不到将其限制为10或8个字符的方法。有什么办法吗?uuid4()ffc69c1b-9d87-4c19-8dac-c09ca857e3fc谢谢。 参考方案 尝试:x = uuid4() str(x)[:8] 输出:"ffc69c1b" Is there a way to…

Python-crontab模块 - python

我正在尝试在Linux OS(CentOS 7)上使用Python-crontab模块我的配置文件如下:{ "ossConfigurationData": { "work1": [ { "cronInterval": "0 0 0 1 1 ?", "attribute&…

Python:检查是否存在维基百科文章 - python

我试图弄清楚如何检查Wikipedia文章是否存在。例如,https://en.wikipedia.org/wiki/Food 存在,但是https://en.wikipedia.org/wiki/Fod 不会,页面只是说:“维基百科没有此名称的文章。”谢谢! 参考方案 >>> import urllib >>> prin…

Python Pandas导出数据 - python

我正在使用python pandas处理一些数据。我已使用以下代码将数据导出到excel文件。writer = pd.ExcelWriter('Data.xlsx'); wrong_data.to_excel(writer,"Names which are wrong", index = False); writer.…

我怎样才能从字典的键中算出对象? - python

我有这本字典:dict={"asset":[("S3","A1"),"S2",("E4","E5"),("E1","S1"),"A6","A8"], "…