python - 在Python中大规模连接字符串

标签 python json string dictionary

假设我有一个庞大的词典列表(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/

相关文章:

php - 我的 PHP/Mysql JSON 输出格式与 flutter 应用程序所需的示例 JSON 页面的格式不同

java - 使用 GSON 将 JSON 转换为 Java 类

java - 为什么我的随机字符串生成器不能一致地生成 100,000 个字符串?

c - 字符串数组的部分副本

python - 如何处理 Pandas Data Frame 中的重复条目?

python - 哪种 Python 2.x DHT 实现最容易移植到 Python 3.x?

java - 如何在JAVA中找不到东西?

python - key=dictionary.get 的效率如何?

ios - 如果 "active"列在 Swift 3/Xcode 8 中为 "no",如何隐藏单元格