Как объединить значения, присутствующие в списке словаря

#python-3.x

#python-3.x

Вопрос:

new_dict = [{‘достоверность’: 0.7181452631261411, ‘предложение’: ‘В общем, работа из дома не разрешена из-за сложности обязанностей, а также инфраструктурных и других проблем, которые возникают, если руководитель работает где-либо за пределами офисных помещений ‘, ‘извлечение’: {‘arg1’: {‘текст’: ‘другие проблемы’, ‘смещения’: [[53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68]]}, ‘ rel’: {‘текст’: ‘возникают’, ‘смещения’: [[75, 76, 77, 78, 79]]}, ‘ arg2s’: [], ‘context’: None, ‘negated’: False, ‘passive’: False}}, {‘confidence’: 0.7181452631261411, ‘sentence’: ‘В общем, работа из дома запрещена из-за сложности обязанностей, а также инфраструктурных и других проблем, которые возникают, если руководитель функционирует где-либо за пределами офисных помещений ‘, ‘extraction’: {‘arg1’: {‘text’: ‘ инфраструктурные проблемы», «смещения’: [[53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78]]}, ‘ rel’: {‘текст’: ‘возникают’, ‘смещения’: [[85, 86, 87, 88, 89]]}, ‘ arg2s’: [], ‘context’: Нет, ‘negated’: False, ‘passive’: False}}]

 if len(new_dict) == 0:
        yield sent
    else:
        for dict_value in new_dict:
            for second_list in dict_value['extraction']['arg2s']:
                test = "".join(str(x) for x in dict_value['extraction']['arg1']['text']   " "   dict_value['extraction']['rel']['text'])

                arg2 = "".join(second_list['text'])
                new_result = "".join(filter(None,test   " "   arg2))


            yield new_result
  

Я хочу объединить все строки, которые присутствуют в текстовом поле. Кто-нибудь может мне помочь.
Я ожидаю результата в виде
[«возникают другие проблемы»,
«возникают инфраструктурные проблемы»]

Ответ №1:

Я надеюсь, что это сработает.

     conc=[]
    for i in new_dict:
        text=i['extraction']['arg1']['text'] " " i['extraction'] ['rel']['text']
        for j in i['extraction']['arg2s']:
            text=text " " j['text']
        conc.append(text)
  

Комментарии:

1. Я хочу, чтобы список ‘arg2s’: [] необходимо учитывать, потому что иногда он содержит текстовое поле, которое мне нужно объединить.

2. Вы можете использовать try, за исключением, но дело в том, что arg1 — это словарь, а arg2 — это список, нужно немного больше информации об arg2, если вы можете предоставить пример arg2 с текстом, это будет легко.

3. Большое вам спасибо за ваш ответ. Из-за предельного размера charector’а я не могу опубликовать здесь y-данные. Я прикрепляю ссылку на colabedit. Пожалуйста, просмотрите мой код и помогите мне, правильно ли я извлекаю строку или нет. collabedit.com/7k2pm