【发布时间】:2021-05-16 08:34:56
【问题描述】:
我正在尝试创建一个函数来准备我拥有的dataframes。这是函数
def prepare_data(x):
parsed_df = pd.concat([pd.json_normalize(json.loads(js)) for js in x])
// other further processes
return parsed_df
但是当我用我的dataframes 之一对其进行测试时,它引发了错误
data_id99 = data_id99['json_col'].apply(prepare_data)
Output : JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
如果我这样做的话效果很好(单行而不在函数中使用它)
test = pd.concat([pd.json_normalize(json.loads(js)) for js in data_id99['json_col']])
但是当我把它变成一个引发错误的函数时,我不知道我做错了什么,因为我认为我已经正确地将它应用于dataframe 的列并且该函数已经是正确的方式。如何解决这个问题?
【问题讨论】:
-
你的 json 是如何创建的?
-
它来自一个上传的csv,转换成json然后传递到数据库
-
转json的过程好像有问题……
-
但如果错了,
test = pd.concat([pd.json_normalize(json.loads(js)) for js in data_id99['json_col']])行是否也不能正常工作?该行工作得很好(单行代码,不在函数内)并返回我想要的结果。问题是我需要能够将它与函数一起使用,因为我有很多dataframessob -
没关系,我已经找到了另一种方法来实现我想要的循环,无论如何谢谢