【发布时间】:2020-07-28 10:44:41
【问题描述】:
我目前正在使用 Python 进行一个小项目,该项目会产生大量混乱的数据。 数据来自多个来源,每个来源可以返回不同的数据顺序/格式。
TLDR 在底部
我已将这些数据解析为每行结果的列表。 但是,如前所述,数据的顺序不同。
因此,拉列表项 3 可能是每一行的不同数据位。此外,我不知道列表项将被调用多少个或什么。
这是我的清单(以逗号分隔):
{'region_code': 'MO', 'postal_code': None, 'country_code': 'US', 'isp': 'ISP-Name'}
{'hash': 1234, 'org': 'CompanyName', 'transport': 'tcp', 'data': 'HTTP/1.0 302 Found\r\nLocation'}
{'hash': 4321, 'isp': 'ISP-Name', 'transport': 'tcp', 'data': 'HTTP/1.1 500 Internal Server'}
id 喜欢把它变成这样的东西:(当然还有其他的列表项)
Line - region_code - hash - org
1 - MO - N/A - N/A
2 - N/A - 123456 - CompanyName
3 - N/A - 654321 - N/A
我目前有这个,它用逗号将每行内容分成一个列表项
file = open ("filename.txt" , "r")
fileRead = file.readlines()
fileSplit = fileRead.split(",")
file.close()
print (fileSplit[-1])
然后我正在考虑按照以下方式做一些事情:
for x in fileSplit:
splitItem = fileSplit.split(":")
#some line to make each string before the : a "parent" and after a "Child"
这是我的问题:(TLDR)
有没有办法从改变列表中位置并且在某些列表中可能不存在的列表项动态创建父项和子项?
--- 从结果 1 中我们没有“哈希”的列表项
--- 从结果 2 我们有 ['hash' : 1234],它可以拉。父 = 哈希 |孩子 = 1234
--- 从结果 3 我们有 ['hash' : 4321],它可以拉。父 = 哈希 |孩子 = 4321
--- 父级 = 哈希 |孩子 = 1234, 4321
【问题讨论】:
-
你能澄清一下这些确实是列表而不是字典吗?你已经用字典格式写出来了。
{'region_code': 'MO', 'postal_code': None, 'country_code': 'US', 'isp': 'ISP-Name'} {'hash': 1234, 'org': 'CompanyName', 'transport': 'tcp', 'data': 'HTTP/1.0 302 Found\r\nLocation'} {'hash': 4321, 'isp': 'ISP-Name', 'transport': 'tcp', 'data': 'HTTP/1.1 500 Internal Server'}如果数据是这样进来的,那么实现就容易多了。 -
我没有查字典,每个String需要单独分析,但它是每个{}之间包含的数据
-
所以数据是这样的?
'region_code': 'MO', 'postal_code': None, 'country_code': 'US', 'isp': 'ISP-Name' -
是的,我一直在阅读,看起来这可能是我的答案。所以三个不同的字符串将是三个不同的字典。然后我可以在所有 3 个字典中搜索 Hash 条目,它会返回类似于 TLDR 中的内容吗?如果是这样,你想把一些东西作为答案,这样我就可以投票并将其标记为已解决:D
标签: python python-3.x list parsing parent-child