我有此格式的自定義數據文件:遞歸收集串塊蟒蛇
{
data = {
friends = {
max = 0 0,
min = 0 0,
},
family = {
cars = {
van = "honda",
car = "ford",
bike = "trek",
},
presets = {
location = "italy",
size = 10,
travelers = False,
},
version = 1,
},
},
}
我想收集數據的塊,每個集合{同時保持hierarhcy}之間意義的字符串。這些數據不是典型的json格式,因此這不是一個可行的解決方案。
我的想法是創建一個像這樣
class Block:
def __init__(self, header, children):
self.header = header
self.children = children
類對象在那裏我會再循環通過線數據線「莫名其妙」收集必要的數據,所以我的輸出結果想是這樣的.. 。
Block("data = {}", [
Block("friends = {max = 0 0,\n min = 0 0,}", []),
Block("family = {version = 1}", [...])
])
總之我正在尋找關於如何幫助我可以序列化爲有用的數據,那麼我可以很容易地操縱這一點。所以我的方法是通過使用{}作爲分隔符來分解對象。 如果任何人有更好的方法來解決這個問題的建議,我會全力以赴。再次感謝你。
到目前爲止,我只是執行的代碼
class Block:
def __init__(self, content, children):
self.content = content
self.children = children
def GetBlock(strArr=[]):
print len(strArr)
# blocks = []
blockStart = "{"
blockEnd = "}"
with open(filepath, 'r') as file:
data = file.readlines()
blocks = GetBlock(strArr=data)
你到目前爲止有多遠?遞歸地實現這個應該很容易。 – filmor
@filmor我已更新帖子以顯示我的代碼到目前爲止...我有點卡住,雖然不清楚如何繼續下去。 – JokerMartini
這是什麼意思? 0 0,數組?如果那個不存在,你可以將=替換爲:並且ast.literal_eval會這樣做,除非你有=內部的字符串。 – YOU