将字符串作为有序字典导入

2024-04-29

我有一个没有扩展名的文件,其中包含这样的行(忽略行之间的间距,但每一行都是单独的行):

OrderedDict([('key1', u'value1'), ('key2', 'value2')])
OrderedDict([('key1', u'value1'), ('key2', 'value2')])
OrderedDict([('key1', u'value1'), ('key2', 'value2')])

当我将它导入Python时

snap_fh = open("C:\Users\.......")
for row in snap_fh:
    print(type(row))

行是"strings"我无法将其解析为OrderedDictionary

"OrderedDict([('key1', u'value1'), ('key2', 'value2'))])\n"

我如何将其导入为OrderedDict

ast.literal_eval(row)不工作 !


您应该使用正则表达式来进行更安全的评估:

import re
import ast
from collections import OrderedDict

def read(f):
    for s in f:
        m = re.match(r'^OrderedDict\((.+)\)$', s)
        if m:
            yield OrderedDict(ast.literal_eval(m.group(1)))

...
for d in read(snap_fh):
    print type(d)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将字符串作为有序字典导入 的相关文章

随机推荐