我将csv
中的MongoDB
导出到Python
Pandas
DataFrame
中。然而,事实证明,我对包含嵌套数据的特定列进行拼合的努力被证明是徒劳的。
(据我所知)应该提取值列的标准函数正在返回错误。该功能是json_normalize
库中的pandas.io.json
。返回的错误是:
AttributeError: 'str' object has no attribute 'values'
进一步检查后,我可以看到,如果要打印该列,它并没有嵌套json_normalize
函数所需的方式。在docs pertaining to that function中,data
参数需要一个Unserialized JSON object
,文档将其描述如下:
data = [{'id': 1, 'name': {'first': 'Coleen', 'last': 'Volk'}},
{'name': {'given': 'Mose', 'family': 'Regner'}},
{'id': 2, 'name': 'Faye Raker'}]
但是,我数据列中的两行看起来像这样:
[{"name":"A","size":"","price":300,"quantity":0,"_id":"9574"}, {"name":"B","size":"","price":400,"quantity":0,"_id":"1345"}]
[{"name":"C","size":"","price":300,"quantity":0,"_id":"0596"},{"size":"","price":400,"quantity":0,"_id":"0931","name":"D"}]
如果根据我的数据描述不清楚,则基本上,该列中的每一行都包含在方括号内,此外,所有行均不包含在一组外部方括号内,并且每组卷曲下一组大括号中的括号不是“逗号”。
我可以使用regex
函数从每个单元格中删除所有这些外部方括号,但是json_normalize
函数返回相同的错误。
将数据集作为JSON
文件而不是csv
导入也不会更改任何内容。我仍然遇到相同的错误。
对我来说,如何格式化整个列并不十分明显,以致它看起来像json_normalize
所要求的方式。