python-将dataframe转换为json或dict,然后使用非唯一列返回df

python-将dataframe转换为json或dict,然后使用非唯一列返回df,python,python-3.x,pandas,dataframe,to-json,Python,Python 3.x,Pandas,Dataframe,To Json,我需要将一个数据帧从后端发送到前端,因此首先需要将其转换为JSON可序列化的对象或直接转换为JSON。问题是我有一些数据帧没有唯一的col。我已经研究了orient参数、to_json()、to_dict()和from_dict()方法,但仍然无法让它工作 目标是能够将df转换为json可序列化的内容,然后再转换回初始状态。 我也有一个硬拷贝粘贴它使用pd.read_剪贴板,所以我已经包括了一个样本df造成的问题作为一个图像(对不起!) 我找到了一个让它工作的方法 以下是一个简单的可复制示例:

我需要将一个数据帧从后端发送到前端,因此首先需要将其转换为JSON可序列化的对象或直接转换为JSON。问题是我有一些数据帧没有唯一的col。我已经研究了
orient
参数、
to_json()
to_dict()
from_dict()
方法,但仍然无法让它工作

目标是能够将df转换为json可序列化的内容,然后再转换回初始状态。

我也有一个硬拷贝粘贴它使用pd.read_剪贴板,所以我已经包括了一个样本df造成的问题作为一个图像(对不起!)


我找到了一个让它工作的方法

以下是一个简单的可复制示例:

import pandas as pd
import json

# create simple df with two identical named columns
df = pd.DataFrame([[1, 2, 3, 4]], columns=['col1', 'col2', 'col1', 'col2'])

# orient='split' conservers order
jsonized_df = df.to_json(orient='split')

# suppose the df is part of a bigger data structure being sent to another app
random_dict = {'foo': 'bar'}
all_data = [random_dict, jsonized_df]
data_to_frontend = json.dumps(jsonized_df)

# then from the other app
all_data = json.loads(data_to_frontend)
final_df = pd.read_json(all_data[1], orient='split') #important to remember to include the orient parameter when reading the json df as well!

最终的_df将与初始_df相同,保留订单

这真的有效吗?我有
pandas==0.25.1
并且在解码“string”时得到了
不匹配的“””
@shadi你是对的,它似乎不再工作了。它以前使用pandas 0.22.0