合并/组合/附加2个没有公共值/数据的JSON文件(在Python中)

2024-10-01 15:28:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试合并2个没有公共数据的JSON文件。1个文件是嵌套字典的列表,而另一个只有一个字典(文件2中没有嵌套)。 我尝试使用一个新的键值对['tmp']=1,这样我就可以合并它钥匙。但是代码正在运行并以代码137状态退出。(sigkill)。 必须在文件1的数据中追加或合并文件2的数据,但是缺少公共参数没有帮助,我尝试使用pandas将数据合并为python列表和数据帧。你知道吗

import json import pandas as pd from pandas import DataFrame

def df_crossjoin(df, df1, **kwargs):
    df['_tmpkey'] = 1
    df1['_tmpkey'] = 1

    res = pd.merge(df, df1, on='_tmpkey', **kwargs).drop('_tmpkey', axis=1)    
    res.index = pd.MultiIndex.from_product((df.index,df1.index))    
    df.drop('_tmpkey', axis=1, inplace=True)   
    df1.drop('_tmpkey', axis=1, inplace=True)

    return res    
    with open("data.json",encoding='utf-8') asinput_file:
       with open("IPAMData.json", encoding='utf-8') as input_file1:
            data = json.load(input_file)
            df = pd.DataFrame(data)

            data1 = json.load(input_file1)
            df1=pd.DataFrame(data1)
            df_cartesian=df_crossjoin(df,df1,suffixes=('_left','_right'))
            df_cartesian.to_json("FILE11.json",orient='records', lines=True)

文件中的数据是:文件1-数据.json地址:

 [ { "_ref": "network/ZAvMjIvMA:192.168.15.0/22/default", "comment": "ABS", "dhcp_utilization": 0, "disable": false, "enable_ddns": false, "extattrs": { "CITY": { "value": "CITY" }, "COUNTRY": { "value": "COUN" }, "Helpnow ID": { "value": "TA04" }, "OWNER": { "value": "owner@exam.com" }, "REGION": { "value": "REG" }, "SITE_CODE": { "value": "E1" }, "VLAN Type": { "value": "TYPE" }, "VLAN ID": { "value": 2 }, "VLAN DESC": { "value": "data value" }, "synchronized_with_presto": { "value": 0 } }, "members": [], "network": "192.168.15.0/22" }, { "_ref": "network/Z4gyLzA:10.4.7.0/24/default", "comment": "comment", "dhcp_utilization": 0, "disable": false, "enable_ddns": false,"extattrs": { "CITY": { "value": "ABC" }, "COUNTRY": { "value": "COUNTRY" }, "Helpnow ID": { "value": "O1" }, "OWNER": { "value": "cyz@example.com" "REGION": { "value": "REGION" }, "SITE_CODE": { "value": "T1" }, "VLAN Type": { "value": "TN" }, "VLAN ID": { "value": 1612 }, "VLAN DESC": { "value": "DESC" }, "synchronized_with_presto": { "value": 0 } }, "members": [], "network": "10.4.7.0/22" },....]

文件2IPAMData.json文件地址:

[ { "_ref": "ipam:statistics/ZAujjMjIvMA:default/192.168.15.0/22", "network": "192.168.15.0", "utilization": 640 }, { "_ref": "ipam:statistics/ZG5AuIyLzA:default/10.4.7.0/22", "network": "10.4.7.0", "utilization": 9 }, ... ]

你知道吗输出:进程已完成退出代码137(被信号9中断:SIGKILL)

预期输出可以是这样的:

 [ { "_ref": "network/ZAvMjIvMA:192.168.15.0/22/default", "comment": "ABS","_ref": "ipam:statistics/ZAMjIvMA:default/192.168.15.0/22", "network": "192.168.15.0", "utilization": 640, "dhcp_utilization": 0, "disable": false, "enable_ddns": false,  "extattrs": { "CITY": { "value": "CITY" }, "COUNTRY": { "value": "COUN" }, "Helpnow ID": { "value": "TA04" }, "OWNER": { "value": "owner@exam.com" }, "REGION": { "value": "REG" }, "SITE_CODE": { "value": "E1" }, "VLAN Type": { "value": "TYPE" }, "VLAN ID": { "value": 2 }, "VLAN DESC": { "value": "data value" }, "synchronized_with_presto": { "value": 0 } }, "members": [], "network": "192.168.15.0/22" } { "_ref": "network/Z4gyLzA:10.4.7.0/24/default", "comment": "comment","_ref": "ipam:statistics/ZG5AuIyLzA:default/10.4.7.0/22", "network": "10.4.7.0", "utilization": 9 , "dhcp_utilization": 0, "disable": false, "enable_ddns": false, "extattrs": { "CITY": { "value": "ABC" }, "COUNTRY": { "value": "COUNTRY" }, "Helpnow ID": { "value": "O1" }, "OWNER": { "value": "cyz@example.com" "REGION": { "value": "REGION" }, "SITE_CODE": { "value": "T1" }, "VLAN Type": { "value": "TN" }, "VLAN ID": { "value": 1612 }, "VLAN DESC": { "value": "DESC" }, "synchronized_with_presto": { "value": 0 } }, "members": [], "network": "10.4.7.0/22" },....]

文件2中的数据必须附加到文件1中的数据中,其中文件2中的每个词典都以相同的顺序对应于文件1中的词典。你知道吗


Tags: 文件数据refidjsonfalsedefaultdf

热门问题