#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"))