# %% import json def getFormattingCodes(formattedContext): toRet = [] for contextPart in formattedContext: stringPart = contextPart['stringPart'] code = getSingleFormattingCode(contextPart['formatting']) toRet = toRet + [code]*len(stringPart) return toRet # def getSingleFormattingCode(formatting): toRet = 0 if 'grassetto' in formatting: toRet += 1 if 'corsivo' in formatting: toRet += 2 if 'sottolineato' in formatting: toRet += 4 if 'barrato' in formatting: toRet += 8 if 'evidenziato' in formatting: toRet += 16 return toRet # %% formattedContextjSON = ''' [{ "stringPart": "pippo", "formatting": ["corsivo", "grassetto", "evidenziato"] }, { "stringPart": " รจ stato ", "formatting": [] }, { "stringPart": "qui", "formatting": ["grassetto"] }]''' prova = getFormattingCodes(json.loads(formattedContextjSON)) unformattedString = ''.join( [part['stringPart'] for part in json.loads(formattedContextjSON)] ) print(unformattedString) print(prova) len(prova)==len(unformattedString) # %%