假设我有一个庞大的词典列表(200 万本词典)。我基本上需要将每个字典的 json.dumps()
转换成一个巨大的字符串(放入对 AWS OpenSearch 的请求正文中)。到目前为止我有这个:
json_data = ''
action = {'index': {}}
for item in data:
json_data += f'{json.dumps(action)}\n'
json_data += f'{json.dumps(item)}\n'
其中data
是大字典。这平均需要 0.9 到 1 秒。有没有更有效的方法来做到这一点?
其他 SO 问题的结论是,如果这是一个必须完成一次的简单字符串添加,那么执行 c = a + b
是最快的方法,但是,我必须继续附加到这种情况是c
。我必须多次重复此操作,因此加快速度将非常有帮助。有没有办法加速这个功能,如果可以的话,这些优化会是什么样子?
最佳答案
Repeated string concatenation is slow 。更好的方法是建立一个字符串列表,然后在最后将它们连接起来。我无权访问您的数据,因此无法对此进行测试,但您会寻求以下内容:
json_data = []
action = {'index': {}}
for item in data:
json_data.append(action)
json_data.append(item)
result = '\n'.join([json.dumps(blob) for blob in json_data])
关于python - 在Python中大规模连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72689393/