如何将复杂的python数据结构保存并加载到文件中?

时间:2018-01-01 04:00:02

标签: python arrays file dictionary type-conversion

我将逐行读取python中的文件,并将该行转换为字典。该行的结构有点复杂,我不知道如何在字典中转换它。以下是我文件第一行的示例:

int main(int argc, char * argv[])
{
    double final[col][col];
    double transarray[col][value]; 
    run(final,transarray,finalmidd);
}

void run(double hold[col][col],double transarray[col][value],double finalmidd[col][value])
{
    double one;
    int i;
    int j;
    int  k;
    for(i = 0; i < col ; i++)
    {
        for( j = 0; j < value ; j++)
        { 
            one = 0;
            for( k = 0; k < col; k++)
                one+= hold[i][k] *transarray[k][j];
            finalmidd[i][j]=one;
        }
    }
}

我想阅读第一行并将其保存在字典中,以便可以使用OrderedDict([('key', 'my_key'), ('rank', '2'), ('origin', 'IR'), ('num', '10'), ('num_2', '220'), ('same_array', ['a','b','d']), ('dif_array', ['g','h']), ('first_dic', OrderedDict([('name','ali'),('last','ali')])), ('num_', 0), ('response', OrderedDict([('ok_1', 0), ('red', 0), ('bad', 0)])), ('response_code', OrderedDict([('ok', 0), ('red', 0), ('bad', 0)]))]) 这样的命令,我想要print my_dictionary['key']

这是一个非常复杂的文件,正如您所看到的,每行中都有一些内部数组和字典。我试图使用一些命令,如my_keynew_line = dict(item.split("=") for item in line.split(",")),但我得到错误,因为例如对于第一个命令,因为内部数组中有这么多new_line = ast.literal_eval(line),我没有得到很好地分离了主字典项或第二个命令我得到了这个错误:

,

1 个答案:

答案 0 :(得分:0)

好像你已经尝试eval这行了,但是这部分格式不正确:'innerarray: ['one', 'two']你甚至可以通过突出显示代码来判断{{1}后是否有撇号丢失}}

如果文件是由脚本创建的,则可能意味着其他行中存在类似的错误,但如果文件是手工制作的,则可能是唯一的错误,也可能是导致此错误的任意数量的错误组合发生

我建议分享这个文件是如何创建的(因为它的创建出了问题)或者只是手动修复文件