python - 在Python中将JSON字符串数组转换为对象数组
问题描述
我有 JSON 字符串数组,我需要将其转换为对象数组(即,将 JSON 转换为相应的对象)而不使用 for 循环。
源代码:(输入数据)
data = ['[1,2,3]', '[4,5,6]', '[7,8,9]']
所需输出:
[[1,2,3], [4,5,6], [7,8,9]]
我已经在使用以下解决方案
import json
data = ['[1,2,3]', '[4,5,6]', '[7,8,9]']
output = []
for item in data:
output.append(json.loads(item))
目前我有大量的 JSON 字符串(大约 10 万条记录),而且每个 JSON 字符串数组内部包含大约 5 万条记录。在执行时,它需要超过 3GB 的 RAM 来处理。
注意:隐含的输出是一个 2-dim 数组
[][]
。第一维是大约 100K 记录第二维包含大约 50K 记录。总共 100K * 50K 项。
在转换时,转换 JSON 需要更多时间(对于上述方法)。请帮助我在没有 for 循环的情况下转换 JSON 字符串的想法。
解决方案
现在解决方案看起来很连贯,但这很有效,并且对您进行优化很有用。将完整列表转换为 str 然后'
使用 str 函数删除所有单个逗号并加载应用 json,万岁这对我有用。
data = ['[1,2,3]', '[4,5,6]', '[7,8,9]']
r = str(data).replace("'",'')
import json
data = json.loads(r)
现在您data
将成为列表列表而无需循环。你可以做到这一点。
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
推荐阅读
- swiftui - 分解@ViewBuilder TupleView
- python - 读取包含/不包含特定字符的 csv 文件
- python - 加载 RandomForestClassifier 时的性能问题
- firebase - 如果我在 Angular 中使用相同的查询,则 Firebase 查询在 Admin 中不起作用。为什么会有这种差异?
- postgresql - TimescaleDB:如何在 CASE 语句中使用 time_bucket_gapfill
- web-scraping - 无法网页抓取导致找不到表单元素
- api - 我希望我的订单现在自动添加从 gloriafood 到 epos 的 POS
- reactjs - 如何通过多步formik表单使用react-select/creatable
- reactjs - 更改平面列表 onpress 中按钮的背景颜色
- html - HTML 标签在 iOS 中比 Android 占用更多的新行空间