Извлечение текста из определенного поля в файле json на Python

#python #json #string #text

#питон #json #строка #текст

Вопрос:

Мой JSON выглядит так (но со многими такими строками):

 {"text": "Home - Homepage des Kunstvereins Pro Ars Lausitz e.V.nKunst. Und so weiter.", "timestamp": "2018-01-20T18:56:35Z", "url": "http://proarslausitz.de/1.html"} {"text": "Bildnummer: 79800031nVektorgrafikSkalieren Sie ohne Auflu00f6sungsverlust auf jede beliebige. Ende.", "url": "http://www.shutterstock.com/de/pic.mhtml?id=79800031amp;src=lznayUu4-IHg9bkDAflIhg-1-15"}  

Я хочу создать .txt файл, содержащий только текст из text . Так что это было бы просто:

 Home - Homepage des Kunstvereins Pro Ars Lausitz e.V.nKunst. Und so weiter. Bildnummer: 79800031nVektorgrafikSkalieren Sie ohne Auflu00f6sungsverlust auf jede beliebige. Ende.  

Никаких обязательств, ничего. Кодировка (из-за умлаутов) Я думаю, что это не трудно решить впоследствии. Но что касается извлечения текста, я знаю, что могу это сделать:

 json_object = json.loads(json_object_string) print(json_object["text"])  

Но это только на одну строчку. Нужно ли мне перебирать строки? Как я могу объединить тексты в один .txt файл?

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

1. просто повторите эти строки

Ответ №1:

 with open("file.txt", 'w') as txt_file:  for i in range(len(js_file['...'])):  txt_file.write(js['...'][i]['text'])  txt_file.close()  

замените » … » именем основного ключа для файла json

Ответ №2:

Я не совсем уверен, что есть способ «векторизовать» копирование значений из json, и даже если бы это было так, повторение все равно отлично справляется с работой, на мой взгляд. Если бы я перебирал каждую строку этого длинного JSON и помещал каждый «текст» в текстовый файл, я бы сделал это так:

 import json  # removed escape sequences, that is not focus of problem test = '[{"text": "Home - Homepage des Kunstvereins Pro Ars Lausitz e.V.Kunst. Und so weiter.", "timestamp": "2018-01-20T18:56:35Z", "url": "http://proarslausitz.de/1.html"}, {"text": "Bildnummer: 79800031VektorgrafikSkalieren Sie ohne Aufl sungsverlust auf jede beliebige. Ende.", "url": "http://www.shutterstock.com/de/pic.mhtml?id=79800031amp;src=lznayUu4-IHg9bkDAflIhg-1-15"}]'  # as you said loading the object from list of dicts into json test_json = json.loads(test)  # opens a new text file to put the json text into with open("json_output.txt", 'w ') as file:  for line in test_json:  # assuming the text includes /n write function will paste each dict on different line  file.write(line.get("text"))