将不同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}$

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在Java中创建固定大小的泛型数组?   javascript Paypal Braintree订阅付款   使用BufferedReader和PrintWriter实现java数据持久化?   类似于iCloud的java唯一google id   java使用网格布局和抓取组合框   java我的while循环无限运行,当我检查它时,它说while循环没有主体,而我认为它显然没有主体   java LWJGL碰撞3D OpenGL   java将Tibco RV切换到WebSphere MQ?   java如何使用Postman从curl发布REST   java是超级的,在通用通配符中是独占的吗?   在swing 1.5中,java在指定时间后自动关闭非模态对话框   java PrimeFaces饼图在JSF 2.0中不显示   java如何在Spring MVC中提供带有xml配置的默认bean实现?   java在eclipse中使用按钮关闭JFrame   java Sqoop jar已弃用   Java中的Getter方法