2015-12-28 3 views
0

У меня есть коллекция документов JSON. Мне нужно объединить данные из всех этих документов в переносимый формат, например CSV, для легкого доступа к данным в Excel или других инструментах аналитики.Обновление схемы csv из коллекции json документов

Проблема, с которой я сталкиваюсь, заключается в том, что я создаю документ JSON, добавляя ключи один за другим. Из-за этого все ключи в JSON получаются рандомизированными, и я не уверен, что при анализе документа JSON в CSV он сохранит свою схему (не как в РСУБД, а в схеме 2d excel)

Я просто хочу убедитесь, что каждый раз, когда я обновляю CSV-файл с помощью csv.writerow(), каждое значение должно соответствовать его заголовку, который был установлен в первый раз.

Любые идеи, как я могу достичь своей цели?

+0

У вас есть кусок кода, который вы начали работать, или, по крайней мере, пример данные. – karlcow

ответ

0

Один из способов заключается в использовании csv.DictWriter для создания файла CSV:

import json 
import csv 


# Two JSON documents 
jsondoc1 = '''{"a":"aardvark", "b":"bengal tiger"}''' 
jsondoc2 = '''{"a":"Samuel Adams", "b":"Carter Braxton"}''' 

# Create a CSV file, then use csv.DictWriter() to write the header 
# and one for for each JSON document 
with open("output.csv", "wt") as output_file: 
    output_file = csv.DictWriter(output_file, ["a", "b"]) 
    output_file.writeheader() 
    output_file.writerow(json.loads(jsondoc1)) 
    output_file.writerow(json.loads(jsondoc2)) 

Результат:

a,b 
aardvark,bengal tiger 
Samuel Adams,Carter Braxton 
+0

Что делать, если некоторые ключи отсутствуют в документе. Некоторые json docs могут иметь 5 ключей, а некоторые из них 6, из которых 4 идентичны, а остальные - разные. В таком случае, как я могу обеспечить целостность csv. – Harvey

Смежные вопросы