2017-01-08 6 views
0

В настоящее время мой данные JSON отформатирована как:Выходной группа JSon объектов на новых линиях вместо одной строки

{"1": {"name": "camera", "aisle": "M.53", "status": "Out of Stock"}, "2": {"name": "camera", "aisle": "M.36", "status": "In Stock"}, "3": {"name": "camera", "aisle": "M.38", "status": "In Stock"}} 

Я хотел бы переформатировать «блок» данных, с тем, что она печатает каждую «группу» данных находится в режиме онлайн. Данные не должны оставаться в формате JSON - Я просто хочу, чтобы разбить информацию на отдельные линии (по аналогии к следующему):

"1": {"name": "camera", "aisle": "M.53", "status": "Out of Stock"}, 
"2": {"name": "camera", "aisle": "M.36", "status": "In Stock"}, 
"3": {"name": "camera", "aisle": "M.38", "status": "In Stock"} 

Вот код, я использую:

result = json.loads(data['searchResults'])['results'][0] 
     summary = { 
      'name': result['name'], 
      'aisle': result['price']['aisle'][0], 
      'status': result['inventory']['status'], 
      } 
     results[store] = summary 

with open('Testing.txt', 'w') as outfile: 
    outfile.write('\n') 
    json.dump(results, outfile) 

Что такое рекомендуемый способ добавления разрывов строк?

+0

Если формат имеет решающее значение, вам, возможно, придется реализовать его самостоятельно или искать сторонний модуль с большей конфигурацией - насколько мне известно, модуль стандартной библиотеки 'json' предоставляет только два варианта: вы уже видели. – jonrsharpe

+0

Я также пробовал, что размещено здесь http://stackoverflow.com/questions/21589040/output-group-of-json-objects-on-new-line-instead-of-singleline, но не так много удачи с моим кодом. –

+0

Возможный дубликат [Parse json data in python] (http://stackoverflow.com/questions/41537153/parse-json-data-in-python) – jonrsharpe

ответ

-1

Вы можете использовать Python PrettyPrint, как описано в этом answer. Надеюсь, что это поможет :)

Редактировать: Извинения, я должен был быть яснее. Я использовал следующий код теста и достичь желаемого выхода:

import json 

#example json from your question as text 
before_parsed = '{"1": {"name": "camera", "aisle": "M.53", "status": "Out of Stock"}, "2": {"name": "camera", "aisle": "M.36", "status": "In Stock"}, "3": {"name": "camera", "aisle": "M.38", "status": "In Stock"}}' 

#parsing the text to get the results as a json object 
results = json.loads(before_parsed) 

#print (results) 

#############copy the code from here to your program################ 
#sorting your json output by keys so that you get your output as {"1":{}, "2":{}...} 
results_str = json.dumps(results, sort_keys=True) 

#removing the outer brackets {}, now the results_str would look something like this "1":{}, "2":{}... 
results_str = results_str[1:-1] 

#splitting the string by "}," as delimiter, so results_list would look like this ["1":{, "2":{, "3":{}] 
results_list = results_str.split("},") 

#print the results to the file as per the desired format 
with open('Testing.txt', 'w') as outfile: 
    outfile.write('\n') 
    for p in results_list[:-1]: 
     print (p+'}', file=outfile) 
    print (results_list[-1], file=outfile) 

И следующий печатается Testing.txt файл:

"1": {"aisle": "M.53", "name": "camera", "status": "Out of Stock"} 
"2": {"aisle": "M.36", "name": "camera", "status": "In Stock"} 
"3": {"aisle": "M.38", "name": "camera", "status": "In Stock"} 

Позвольте мне знать, если он не работает для вас или если это не то, что вы ищете. Приветствия!

+0

Могу ли я попросить вас добавить еще какой-нибудь контекст вокруг вашего ответа. Ответы на связь только трудно понять и могут стать недействительными, если веб-сайт не работает или не работает. Это поможет читателю и будущим читателям, если вы сможете воспроизвести наиболее релевантные части ссылки/блога, на которые вы ссылаетесь, в эту запись. – RBT

+0

Я просмотрел ответ, на который ссылался, но я все еще не уверен, как подать заявку. Можете ли вы дать какие-либо рекомендации, чтобы помочь мне в правильном направлении? –

+0

Спасибо, это работает! –