将不同Amazon flatfile格式之间的数据移动到正确的位置。
transfer-flatfile-format的Python项目详细描述
传输平面文件格式
概述
目的:
该项目要解决的根本问题是Amazon提供了不同的flatfile格式。要么是因为用户选择了不同的元素,要么是因为amazon将更改应用于现有格式。在这两种情况下,当列标题不匹配时,不可能简单地在两种格式之间复制和粘贴数据。在
策略:
找到符合特定条件的行的子集(除了提供的SKU之外,不包含任何值),从通过命令行选项(-o/--original)提供的外部源中提取缺少的数据。从google表中为SKU映射一个后备值,方法是在一个完整的市场导出中搜索一个(这是一个可用于我们系统的非常具体的选项)。将数据以较小的块的形式写入google工作表(以避免一次将超过10000个值上载到API时出现问题)。在
安装:
- 在
在python3 -m pip install transfer_flatfile_format --user --upgrade
- 在
在Windows上,您还需要Visual studio build tools 2019,这是numpy所需要的
在 - 在
将来自:Google sheets tutorial的凭据文件放入数据文件夹(请参阅“用法”部分)。(
在~/.transfer_flatfile_format/.credentials.json
) - 在
在配置.ini文件。(见“用法”一节)
在
用法:
有four选项:
- --原始/-o:
- flatfile格式的文件位置,用作值的源
- --排除/-e:
- 逗号分隔的列名列表(flatfile的第三行),从写入googlesheet中排除(用例:源中的一些列包含过时的值)
- --第/-c列:
- 列名(flatfile的第三行),用于从源文件独占地传输到google工作表
- --调整/-a(仅与
--column
结合使用):- 在将源flatfile中的值写入google工作表之前,请使用config下[Adjust]选项:“command”中定义的python表达式来修改源flatfile中的值。在
- 示例:
command=(X)*2
在将列写入gsheet之前,将使用--column
指定的列中的数字相乘。在 - 这些表达式不是“智能”的,所以您可以自己判断数据是否可以由单个表达式修改。在
此外,还有config.ini
文件:
- ~/.transfer_flatfile_格式/配置.ini(在Linux上)
- C: \Users{USER}。传输格式(在Windows上)
它用于指定google工作表的ID和可选的可选sku的数据源。 如果系统为一个实体维护多个SKU,则可以使用替代SKU。这样你就可以用两个可能的术语中的一个来匹配一个产品。在
示例:
在配置.ini在
[General]
google_sheet_id=1PB_XrUqy6qk......
[Match table]
with_matchtable={y|n}
sku_export={Link to csv file or location in file system}
main_sku={column_name of the column where the main SKU is located}
alt_sku={column_name of the column where the alternative SKU is located}
[Adjust]
command=(X)+5//4
示例1:当google sheet有SKU但“brand_name”或“item_name”中没有值时,将源文件中的所有值上载到google sheet中:
python3 -m transfer_flatfile_format -o /home/path/to/source_file.csv
示例2:将源文件中“Example_column”列中的所有值上载到google工作表:
python3 -m transfer_flatfile_format -o /home/path/to/source_file.csv -c example_column
示例3:执行与“示例1”相同的操作,但不要更新列“Example_col1”和“Example_col2”:
{cd9}
示例4:从包含整数的列中获取值,并将3加到其中:
python3 -m transfer_flatfile_format -o /home/path/to/source_file.csv -c numeric_column -a
配置:
^{pr2}$- 项目
标签: