如何用pyparsing解析这串数据结构
How to parse this string of data structure with pyparsing
我有以下存储在文件中的示例数据:
[
{ "keys": ["val1", "val2"], "args": { "arg1": "val1", "arg2": "val2" } },
{ "keys": ["val1", "val2", "val3"], "args": { "arg": "val" } },
{ "keys": ["val"], "args": {} }
]
如您所知,这是 dictionaries
的 list
。每个字典都有键 keys
包含任意长度的列表,键 args
包含字典
我如何将此示例数据解析回 Python
对象
with open('file_name') as file:
source = file.read()
data = how_to_parse(source)
for arr in data:
print(arr)
# Expected result
# { "keys": ["val1", "val2"], "args": { "arg1": "val1", "arg2": "val2" } }
# { "keys": ["val1", "val2", "val3"], "args": { "arg": "val" } }
# { "keys": ["val"], "args": {} }
pyparsing wiki 包含此示例 https://pyparsing.wikispaces.com/file/view/parsePythonValue.py/31712649/parsePythonValue.py,我在 ast.literal_eval
尚不可用时实施了该示例。使用此代码,可以使用以下方式解析您的表达式:
print listItem.parseString("""[
{ "keys": ["val1", "val2"], "args": { "arg1": "val1", "arg2": "val2" } },
{ "keys": ["val1", "val2", "val3"], "args": { "arg": "val" } },
{ "keys": ["val"], "args": {} }
]""")[0]
给出:
[{'keys': ['val1', 'val2'], 'args': {'arg1': 'val1', 'arg2': 'val2'}},
{'keys': ['val1', 'val2', 'val3'], 'args': {'arg': 'val'}},
{'keys': ['val'], 'args': {}}]
https://pyparsing.wikispaces.com/Examples 中还有更多示例供您自我启迪。
我有以下存储在文件中的示例数据:
[
{ "keys": ["val1", "val2"], "args": { "arg1": "val1", "arg2": "val2" } },
{ "keys": ["val1", "val2", "val3"], "args": { "arg": "val" } },
{ "keys": ["val"], "args": {} }
]
如您所知,这是 dictionaries
的 list
。每个字典都有键 keys
包含任意长度的列表,键 args
包含字典
我如何将此示例数据解析回 Python
对象
with open('file_name') as file:
source = file.read()
data = how_to_parse(source)
for arr in data:
print(arr)
# Expected result
# { "keys": ["val1", "val2"], "args": { "arg1": "val1", "arg2": "val2" } }
# { "keys": ["val1", "val2", "val3"], "args": { "arg": "val" } }
# { "keys": ["val"], "args": {} }
pyparsing wiki 包含此示例 https://pyparsing.wikispaces.com/file/view/parsePythonValue.py/31712649/parsePythonValue.py,我在 ast.literal_eval
尚不可用时实施了该示例。使用此代码,可以使用以下方式解析您的表达式:
print listItem.parseString("""[
{ "keys": ["val1", "val2"], "args": { "arg1": "val1", "arg2": "val2" } },
{ "keys": ["val1", "val2", "val3"], "args": { "arg": "val" } },
{ "keys": ["val"], "args": {} }
]""")[0]
给出:
[{'keys': ['val1', 'val2'], 'args': {'arg1': 'val1', 'arg2': 'val2'}},
{'keys': ['val1', 'val2', 'val3'], 'args': {'arg': 'val'}},
{'keys': ['val'], 'args': {}}]
https://pyparsing.wikispaces.com/Examples 中还有更多示例供您自我启迪。