我正在研究一种方法来读取数据,并根据产品的input.csv更新stock列output.csvid
这些是我现在正在执行的步骤:
1.input.csv从into读取产品信息input_data = [],这将返回一个 OrderedDict 列表。
input_data目前看起来像这样:
[OrderedDict([('id', '1'), ('name', 'a'), ('stock', '33')]),
OrderedDict([('id', '2'), ('name', 'b'), ('stock', '66')]), OrderedDict([('id', '3'), ('name', 'c'), ('stock', '99')])]
2.output.csv从into读取当前产品信息output_data = [],其架构与input_data
3.根据 中的库存信息,遍历input_data并更新 中的stock列。最好的方法是什么?output_datainput_data
-> 重要的一点是,input_data 其中可能存在一些 ID,input_data但不存在于output_data. 我想更新 s和s 共同的股票,而“新” s 很可能会被写入新的 csv。idinput_dataoutput_dataid
我在想类似的东西(这不是真正的代码):
for p in input_data:
# check if p['id'] exists in the list of output_data IDs (I might have to create a list of IDs in output_data for this as well, in order to check it against input_data IDs
# if p['id'] exists in output_data, write the Stock to the corresponding product in output_data
# else, append p to another_csv
我知道这看起来很混乱,我要的是一种合乎逻辑的方式来完成这项任务,而不会浪费太多的计算时间。有问题的文件可能有 100,000 行长,因此性能和速度将是一个问题。
如果我的数据来自input_data和,那么签入并将其写入具有完全相同in的产品的最佳方法output_data是什么?listOrderedDictidinput_datastockidoutput_data