pandas.DataFrame.to_json goes to json by line
- 2020-11-03 22:31:23
- OfStack
You recently needed to convert the csv file to DataFrame and display it to the foreground as json, so you need the to_json method of Dataframe
to_json method the default column names as key, and column content for value, form {col1: [v11 v21, v31...]. , col2: [v12, v22 v32],... } this format, but sometimes we need to press line into json, like this format [row1: {col1: v11 col2: v12, col3: v13...}, row2: {col1: v21 col2: v22, col3: v23...}]
By looking up the official website, we can see that the to_json method has one parameter of orient, and its parameters are explained as follows:
orient : string
Series
default is ' index'
allowed values are: { ' split','records','index'}
DataFrame
default is ' columns'
allowed values are: { ' split','records','index','columns','values'}
The format of the JSON string
split : dict like {index -> [index], columns -> [columns], data -> [values]}
records : list like [{column -> value}, ... , {column -> value}]
index : dict like {index -> {column -> value}}
columns : dict like {column -> {index -> value}}
values : just the values array
table : dict like { ' schema': {schema}, ' data': {data}} describing the data, and the data component is like orient='records'.
Changed in version 0.20.0
Roughly meaning:
If it is Series to json, the default orient is 'index', the optional parameters of orient are {' split','records','index'}
If it is DataFrame to json, the default orient is 'columns', orient optional parameters are {' split','records','index','columns','values'}
The format of json is as follows
split, style {index - > [index], columns - > [columns], data - > [values]}
records, style [{column -) > value},... , {column - > value}]
index, style {index - > {column - > value}}
columns, style {index - > {column - > value}}
values, array style
table, style {' schema': {schema}, 'data': {data}}, similar to records
Take a look at demo given by the official website
df = pd.DataFrame([['a', 'b'], ['c', 'd']],
index=['row 1', 'row 2'],
columns=['col 1', 'col 2'])
###########
split
###########
df.to_json(orient='split')
>'{"columns":["col 1","col 2"],
"index":["row 1","row 2"],
"data":[["a","b"],["c","d"]]}'
###########
index
###########
df.to_json(orient='index')
>'{"row 1":{"col 1":"a","col 2":"b"},"row 2":{"col 1":"c","col 2":"d"}}'
###########
records
###########
df.to_json(orient='index')
>'[{"col 1":"a","col 2":"b"},{"col 1":"c","col 2":"d"}]'
###########
table
###########
df.to_json(orient='table')
>'{"schema": {"fields": [{"name": "index", "type": "string"},
{"name": "col 1", "type": "string"},
{"name": "col 2", "type": "string"}],
"primaryKey": "index",
"pandas_version": "0.20.0"},
"data": [{"index": "row 1", "col 1": "a", "col 2": "b"},
{"index": "row 2", "col 1": "c", "col 2": "d"}]}'
Main reference website API: https: / / pandas pydata. org/pandas - docs stable/generated/pandas DataFrame. to_json. html