pem*_*fir 2 python string import ordereddictionary
我有一个没有扩展名的文件,这样的行(忽略行之间的间距,但每行是一个单独的行):
OrderedDict([('key1', u'value1'), ('key2', 'value2')])
OrderedDict([('key1', u'value1'), ('key2', 'value2')])
OrderedDict([('key1', u'value1'), ('key2', 'value2')])
Run Code Online (Sandbox Code Playgroud)
当我将它导入Python
snap_fh = open("C:\Users\.......")
for row in snap_fh:
print(type(row))
Run Code Online (Sandbox Code Playgroud)
行是"strings",我不能解析它OrderedDictionary
"OrderedDict([('key1', u'value1'), ('key2', 'value2'))])\n"
Run Code Online (Sandbox Code Playgroud)
如何将其导入为 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1049 次 |
| 最近记录: |