Z
Z
zasara2022-01-04 12:23:13
Python
zasara, 2022-01-04 12:23:13

How to remove a character from a dictionary?

Unable to remove character "_" from dictionary
Dictionary (mas) converted to json (for clarity) looks like this:

[
    {
        "code": 200,
        "data": [
            {
                "key1": "AL_AS",
                "key2": "10",
            }
        ]
    },
    {
        "code": 200,
        "data": [
            {
                "key1": "AR_FD",
                "key2": "4",
            }
        ]
    }
]


I am trying through the following code:
newmas = [{re.sub(r'_', '', k): re.sub(r'_', '', v) for k, v in mas}]

But this way it only gives out [{'code': 'data'}]

Can you please tell me how to delve into 'data' and delete a character there?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
V
Vindicar, 2022-01-04
@zasara

Turn on your head and learn already standard Python data structures.

That's jokes aside
Для начала, у тебя не словарь, а список словарей с разнообразными структурами данных внутри.
А твой код пытается работать с этой структурой, как будто это список строк. Вот с чего ты взял, что это вообще сработает? Да ещё и используя регулярные выражения. Взял, что первой строкой в гугле попалось?

Now tell me, in the context of the above - what does it mean to "remove the underscore"? Delete from where?
I guess from the values ​​in the dictionaries inside the list in the data key for each dictionary in your list?
Well, in fact, this phrase is enough to translate into python (from the end to the beginning) to get an answer.
# этот код изменит твой массив "на месте", а не создаст изменённую копию!
for mas_item in mas: # для каждого словаря в твоем списке
    for data_dict in mas_item['data']: # для каждого словаря в списке по ключу data 
        # словари не любят, когда их модифицируют и проходятся по ним for'ом одновременно
        data_dict_keys = list(data_dict.keys()) # так что заранее составляем список ключей словаря
        for key in data_dict_keys: # проходимся по этим ключам
            data_dict[key] = data_dict[key].replace('_', '') # и обрабатываем значения по этим ключам

Something like this. Than this underlining has prevented you, without concept.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question