我正在研究一种方法来读取数据,并根据产品的input.csv
更新stock
列output.csv
id
这些是我现在正在执行的步骤:
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_data
input_data
-> 重要的一点是,input_data
其中可能存在一些 ID,input_data
但不存在于output_data
. 我想更新 s和s 共同的股票,而“新” s 很可能会被写入新的 csv。id
input_data
output_data
id
我在想类似的东西(这不是真正的代码):
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
是什么?list
OrderedDict
id
input_data
stock
id
output_data