jeri teri
jeri teri

Reputation: 65

python nested json to csv Incomplete conversion

this is my json file

{"_index":"core-bvd-locations","_type":"_doc","_id":"75b82cba4a80784f4fa36d14c86f6d85","_score":1,"_source":{"a_id":"FR518077177","a_id_type":"BVD ID","a_name":"Moisan Patrick Roger","a_name_normal":"MOISAN PATRICK ROGER","a_country_code":"FR","a_country":"France","a_in_compliance_db":false,"a_nationality":"FR","a_street_address":"Les Carmes","a_city":"Decize","a_postcode":"58300","a_region":"Bourgogne-Franche-Comte|Nievre","a_phone":"+33 603740000","a_latitude":46.79402777777778,"a_longitude":3.496277777777778,"a_national_ids":{"European VAT number":["FR58 518077177"],"SIREN number":["518077177"],"TIN":["518077177"],"SIRET number":["518077177-00013"]},"relationship":"Location info","file_name":"/media/hedwig/iforce/data/BvD/s3-transfer/SuperTable_v3_json/locations/part-00021-1f62c713-17a0-410d-9b18-32328d9836d6-c000.json","a_geo_point":{"lat":46.79402777777778,"lon":3.496277777777778}}}

this is my code

import csv
import json
import sys
import codecs

def trans(path):
    jsonData = codecs.open('F:\\1.json', 'r', 'utf-8')
    # csvfile = open(path+'.csv', 'w')  # 
    # csvfile = open(path+'.csv', 'wb')  # python2
    csvfile = open('F:\\1.csv', 'w', encoding='utf-8', newline='')  #
    writer = csv.writer(csvfile, delimiter=',')
    flag = True
    for line in jsonData:
        dic = json.loads(line)
        if flag:

            keys = list(dic.keys())
            print(keys)
            writer.writerow(keys) 
            flag = False

        writer.writerow(list(dic.values()))
    jsonData.close()
    csvfile.close()

if __name__ == '__main__':
    path=str(sys.argv[0]) #
    print(path)
    trans(path)

C:\Users\jeri\PycharmProjects\pythonProject9\venv\Scripts\python.exe C:\Users\jeri\PycharmProjects\pythonProject9\zwc_count_file.py C:\Users\jeri\PycharmProjects\pythonProject9\zwc_count_file.py ['_index', '_type', '_id', '_score', '_source']

Process finished with exit code 0

output jie

enter image description here

Information in nested json file cannot be parse, how can i modify the code

Upvotes: 0

Views: 88

Answers (2)

Vitoru
Vitoru

Reputation: 481

json.load(): json.load() accepts file object, parses the JSON data, populates a Python dictionary with the data and returns it back to you.

import json

# Opening JSON file
f = open('data.json')

# returns JSON object as
# a dictionary
data = json.load(f)

writer.writerow write the entire row, rigth sintaxis

writer.writerow(#iterable_object#)

Upvotes: 0

Mazhar
Mazhar

Reputation: 1064

import json
import pandas as pd
file_data = open("json_filname.json",'r').read()
data= json.loads(file_data)
df = pd.json_normalize(data)
df

Upvotes: 0

Related Questions