首页 > 解决方案 > 如何从结构化字符串或列表 Python 中访问和提取数据

问题描述

我试图围绕结构化字符串或列表循环以提取数据,但我总是以类型错误或值错误结束。我尝试将其转换为 JSON,但结果相同。这是字符串:

我想将对应的数据提取到 untagged_vlan、tagged_vlan、port_name 和 port_number 的值。有没有办法将此字符串转换为切片,以便我可以循环它们并提取所需的数据?

提前致谢

[[{'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"01-01-140"', 'port_no': '1'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"02-01-142"', 'port_no': '2'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"03-01-144"', 'port_no': '3'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"04-01-146"', 'port_no': '4'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"05-01-148"', 'port_no': '5'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"06-01-150"', 'port_no': '6'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"07-01-151"', 'port_no': '7'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"08-01-152"', 'port_no': '8'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"09-01-153"', 'port_no': '9'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"10-01-155"', 'port_no': '10'}]]

标签: pythonpython-3.x

解决方案


data = [[{'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"01-01-140"', 'port_no': '1'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"02-01-142"', 'port_no': '2'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"03-01-144"', 'port_no': '3'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"04-01-146"', 'port_no': '4'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"05-01-148"', 'port_no': '5'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"06-01-150"', 'port_no': '6'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"07-01-151"', 'port_no': '7'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"08-01-152"', 'port_no': '8'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"09-01-153"', 'port_no': '9'}, {'untagged_vlan': '101', 'tagged_vlan': '1000', 'port_name': '"10-01-155"', 'port_no': '10'}]]
    
extracted = [item.values() for item in data[0]]

print(extracted)

推荐阅读