将 csv 转换为 json 时如何修复此错误

How can i fix this error when converting csv to json

我正在尝试将 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'
pandas 中的

to_dict() 意味着原始 DataFrame 中的通常 NaN-Values 导致根本不创建相应的字典 key-value-pair。我可以想象 DataFrame 的某些部分包含 NaN(或 auto-converted 到 NaN 的空字符串),因此某些字典可能没有 key-value-pair for '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)