Я не знаю, что вы будете делать именно с этими данными, но согласно информации, которую вы даете, это кажется полезным. По крайней мере, это может дать вам идею, и вы можете манипулировать конвертером по своему усмотрению.
______ exampledata.txt
{a{a{hello world}}}
{a{b{stack over flow}}}
{b{a{example data 1}}}
{b{b{data example 2}}}
______converter.py
import os
fo = open("exampledata.txt", "r")
data = fo.read()
fo.close()
data = data.split("\n")
fo = open("converteddata.txt", "w")
for line in data:
line = line.split("{")
if len(line) < 2:
break
fo.write("data['")
fo.write(line[1]+"-"+line[2]+"'] = [")
splitData = line[3].split("}}}")[0]
splitData = splitData.split(" ")
for d in splitData:
fo.write("'"+d+"', ")
fo.seek(-2, os.SEEK_END)
fo.truncate()
fo.write("]\n")
______ converteddata.txt (преобразователь будет производить это)
data['a-a'] = ['hello', 'world']
data['a-b'] = ['stack', 'over', 'flow']
data['b-a'] = ['example', 'data', '1']
data['b-b'] = ['data', 'example', '2']
______usage преобразованных данных
data = dict()
data["a-a"] = ["hello", "world"]
data["a-b"] = ["stack", "over", "flow"]
data["b-a"] = ["example", "data", "1"]
data["b-b"] = ["data", "example", "2"]
val1 = raw_input("Please enter first parameter : ")
val2 = raw_input("Please enter second parameter : ")
index = raw_input("Please enter index : ")
print data[val1+"-"+val2][int(index)]
EDIT: вы не будете копировать/вставлять преобразованные данные в основной проект. Если у вас большие данные, ваш основной файл проекта кажется очень плохим. Таким образом, вы можете создать converteddata.py, который
data = dict()
data['a-a'] = ['hello', 'world']
data['a-b'] = ['stack', 'over', 'flow']
data['b-a'] = ['example', 'data', '1']
data['b-b'] = ['data', 'example', '2']
, то вы можете импортировать его в свой основной проект, как
from converteddata import data
print data["a-a"][0]
Это не обычный формат, поэтому нет, нет встроенной функции для обработки этого. Напишите код для tokenise, parse и выплюнуть словарь. –
Ниже приведена краткая инструкция по использованию словаря. 'Replace ('{', ': {') [1:]' –
Это не будет легко. Ваши значения заключены в '{}', но вы хотите, чтобы они были как '[]' –