从 CSV 中读取,转换为 JSON 并存储在 MongoDB 中
Reading from CSV, converting to JSON and storing in MongoDB
我正在尝试读取 Pandas 中的 CSV 文件,将每一行转换为 JSON 对象并将它们附加到字典中,然后存储在 MongoDB 中。
这是我的代码
data = pd.DataFrame(pd.read_csv('data/airports_test.csv'))
for i in data.index:
json = data.apply(lambda x: x.to_json(), axis=1)
json_dict = json.to_dict()
print(json_dict[5])
ins = collection.insert_many(json_dict)
# for i in json_dict:
# ins = collection.insert_one(json_dict[i])
如果我打印 dict 的元素,我会得到正确的输出(我认为..)。如果我尝试使用 collection.insert_many,我会得到错误 'documents must be a non empty list'
如果我尝试遍历字典并一次添加一个,我会得到错误
document must be an instance of dict, bson.son.SON, bson.raw_bson.RawBSONDocument, or a type that inherits from collections.MutableMapping
我用谷歌搜索了又搜索,但似乎找不到解决方案!任何帮助将不胜感激。
您可以通过以下方式跳过处理 DataFrame 的各个行:
import json
import pandas
data = pandas.DataFrame(pandas.read_csv('test2.csv'))
data = data.to_dict(orient="records")
collection.insert_many(data)
顺便说一句,我想我个人会使用 csv
模块和 dictReader
而不是 pandas
,但这种方式很好。
我正在尝试读取 Pandas 中的 CSV 文件,将每一行转换为 JSON 对象并将它们附加到字典中,然后存储在 MongoDB 中。
这是我的代码
data = pd.DataFrame(pd.read_csv('data/airports_test.csv'))
for i in data.index:
json = data.apply(lambda x: x.to_json(), axis=1)
json_dict = json.to_dict()
print(json_dict[5])
ins = collection.insert_many(json_dict)
# for i in json_dict:
# ins = collection.insert_one(json_dict[i])
如果我打印 dict 的元素,我会得到正确的输出(我认为..)。如果我尝试使用 collection.insert_many,我会得到错误 'documents must be a non empty list'
如果我尝试遍历字典并一次添加一个,我会得到错误
document must be an instance of dict, bson.son.SON, bson.raw_bson.RawBSONDocument, or a type that inherits from collections.MutableMapping
我用谷歌搜索了又搜索,但似乎找不到解决方案!任何帮助将不胜感激。
您可以通过以下方式跳过处理 DataFrame 的各个行:
import json
import pandas
data = pandas.DataFrame(pandas.read_csv('test2.csv'))
data = data.to_dict(orient="records")
collection.insert_many(data)
顺便说一句,我想我个人会使用 csv
模块和 dictReader
而不是 pandas
,但这种方式很好。