【问题标题】:Convert sql table to json将sql表转换为json
【发布时间】:2018-06-18 22:18:06
【问题描述】:

我正在尝试从 mysql 服务器获取数据,并将其保存为 json。

但不知何故,当转换为 json 时,日期格式会丢失。查看数据和输出中的start & end

建立连接:

import pandas as pd
import pymysql
from pandas import *


con='mysql+pymysql://username:password@host/table'

data=pd.read_sql_query('SELECT * FROM calendar_table',con)

我得到的数据如下:

   id                title               start                 end  client
0   1  somethinginterestin 2018-06-21 12:00:00 2018-06-21 16:20:00    suja
1   2                vusce 2018-06-21 15:00:00 2018-06-22 08:00:00  vuscec

然后我用 pandas 创建 json 文件

x = data.to_json(orient='records')

f = open("sqltable.json","w+")
f.write(x)
f.close()

文件输出

[{"id":1,"title":"somethinginterestin","start":1529582400000,"end":1529598000000,"client":"suja"},
{"id":2,"title":"vusce","start":1529593200000,"end":1529654400000,"client":"vuscec"}]

【问题讨论】:

    标签: python sql json pandas


    【解决方案1】:

    使用参数date_format='iso'

    In [260]: df.to_json(orient='records', date_format='iso')
    Out[260]: '[{"id":1,"title":"somethinginterestin","start":"2018-06-21T12:00:00.000Z","end":"2018-06-21T16:20:00.000Z","client":"suja"},{"id":2,"title":"vusce","
    start":"2018-06-21T15:00:00.000Z","end":"2018-06-22T08:00:00.000Z","client":"vuscec"}]'
    

    来自Pandas docs

    date_format:{无,'epoch','iso'}

    日期转换的类型。 epoch = 纪元毫秒,'iso' = ISO8601。

    默认取决于orient

    对于orient='table',默认为'iso'

    对于所有其他方向, 默认为'epoch'

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 2017-04-01
      • 2022-01-18
      • 2017-01-06
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      • 2021-08-31
      相关资源
      最近更新 更多