简体   繁体   中英

Python to_json function not converting DataFrame to Json in proper format for Date Field

I am facing a problem in receiving correct date formatted data from the CSV using to_json function of pandas.

import pandas as pd
import json

df = pd.read_csv("C:\\Users\\shubham\\Desktop\\Output\\MasterData.csv")
df1 = df.to_json(orient='records')
print(df1)

Current Output:-

[{"invoiceDate":"18\/08\/2019","amount":1140.87}]

I am expecting Output:- "invoiceDate":"18/08/2019"

I already tried to_json arguments:- date_format = "iso" double_precision = 10, force_ascii = True, date_unit = "ms", default_handler = None) , and replace is also not working (df.replace("/","")) .

Create dictionary and write to file with json.dump :

df = pd.DataFrame([{"invoiceDate":"18/08/2019","amount":1140.87}])
print (df)
  invoiceDate   amount
0  18/08/2019  1140.87


import json
with open('data.json', 'w') as f:
    json.dump(df.to_dict(orient='records'), f)

#[{"invoiceDate": "18/08/2019", "amount": 1140.87}]

I used the replace function in the data-frame to replace forward slash as per my need.

The following code helped me to archive my desire output.

df1 = df.to_json(orient='records',lines=True).replace('\\r\\n', " ")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM