【发布时间】:2018-01-01 04:00:01
【问题描述】:
我将在 python 中逐行读取文件并将该行转换为字典。该行的结构有点复杂,我不知道如何在字典中转换它。这是我文件第一行的示例:
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_key 。
这是一个非常复杂的文件,你可以看到每一行都有一些内部数组和字典。我尝试使用一些命令,例如new_line = dict(item.split("=") for item in line.split(",")) 或new_line = ast.literal_eval(line),但我得到了错误,因为例如对于第一个命令,因为内部数组中有很多,,我没有很好地分离主字典项目或第二个命令我收到此错误:
ValueError: malformed string
【问题讨论】:
-
您的示例不包含等号。你能发布实际文件的样子吗?为什么你的文件包含
OrderedDict? -
您的文件似乎包含 Python 代码。逐行评估或将其作为模块加载。
-
我已经使用脚本生成了我的有序字典,然后我将字典保存在文件中。现在我想解析文件。每一行的内容都很大,这里不能全部发完。
标签: python arrays file dictionary type-conversion