我正在嘗試將 CSV 檔案寫入 elasticsearch 資料庫,但首先我想將其作為 json 傳遞,我不斷收到此錯誤,我不知道如何修復它...
這是下面的代碼
from haystack.document_store.elasticsearch import ElasticsearchDocumentStore
document_store = ElasticsearchDocumentStore(host="localhost", username="", password="", index="document")
import pandas as pd
df = pd.read_csv('Data/FINAL_CORD_DATA_0.csv')
dicts = df.to_dict('records')
final_dicts = []
for each in dicts:
tmp = {}
tmp['text'] = each.pop('body_text')
tmp['meta'] = each
final_dicts.append(tmp)
這是我運行最后一個單元格時收到的錯誤訊息
KeyError Traceback (most recent call last)
<ipython-input-13-e5e7b4b7ff5a> in <module>
2 for each in dicts:
3 tmp = {}
----> 4 tmp['text'] = each.pop('body_text')
5 tmp['meta'] = each
6 final_dicts.append(tmp)
KeyError: 'body_text'
uj5u.com熱心網友回復:
to_dict()在 pandas 中意味著通常原始 DataFrame 中的 NaN-Values 會導致根本不創建相應的 dicts 鍵值對。我可以想象 DataFrame 的某些部分包含 NaN(或自動轉換為 NaN 的空字串),因此某些 dicts 可能沒有'body_text'.
您可以通過為這些字典填寫一個空字串來捕捉這種情況,例如:
for each in dicts:
tmp = {}
if 'body_text' in each:
tmp['text'] = each.pop('body_text')
else:
tmp['text'] = ""
tmp['meta'] = each
final_dicts.append(tmp)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/446592.html
