如何正确地将csv中包含日期的列转换为JSON

2024-09-28 05:23:30 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的csv文件中,"ESTABLİSHMENT DATE"列由如下斜杠分隔:01/22/2012

我正在将csv格式转换为JSON格式,这需要使用pandas完成,但是"ESTABLİSHMENT DATE"列没有正确地转换为JSON

df = pd.read_csv(my_csv)
df.to_json("some_path", orient="records")

我不明白为什么它笨拙地添加了反斜杠

"ESTABLİSHMENT DATE":"01\/22\/2012",

但是,我需要将结果写入文件,如下所示:

"ESTABLİSHMENT DATE":"01/22/2012",

Tags: 文件csvtojsonpandasdfreaddate
1条回答
网友
1楼 · 发布于 2024-09-28 05:23:30
  • Forward slash in json file from pandas dataframe回答了为什么它笨拙地添加了反斜杠,这个answer展示了如何使用json库来解决这个问题。
    • 只要日期格式是01/22/2012,那么/将用\转义
  • 要正确地将csv中包含日期的列转换为JSON,使用pandas,可以通过将'date'列转换为正确的datetime dtype,然后使用.to_json来完成。
    • 2012-01-22是正确的日期时间格式,但是.to_json会将其转换为1327190400000。使用pd.to_datetime将正确的格式设置为%Y-%m-%d后,必须将类型设置为string
import pandas as pd

# test dataframe
df = pd.DataFrame({'date': ['01/22/2012']})

# display(df)
         date
0  01/22/2012

# to JSON
print(df.to_json(orient='records'))
[out]: [{"date":"01\/22\/2012"}]

# set the date column to a proper datetime
df.date = pd.to_datetime(df.date, format='%m/%d/%Y')

# display(df)
        date
0 2012-01-22

# to JSON
print(df.to_json(orient='records'))
[out]: [{"date":1327190400000}]

# set the date column type to string
df.date = df.date.astype(str)

# to JSON
print(df.to_json(orient='records'))
[out]: [{"date":"2012-01-22"}]

# as a single line of code
df.date = pd.to_datetime(df.date, format='%m/%d/%Y').astype(str)

相关问题 更多 >

    热门问题