to_excel.md 6.6 KB

生成 excel

{
    "result_table": [
        {
            "traffic_keyword": "コードカバー",
            "keyword_link": "https://www.asinseed.com/en/JP?q=%E3%82%B3%E3%83%BC%E3%83%89%E3%82%AB%E3%83%90%E3%83%BC",
            "monthly_searches": "9,332",
            "amazon_search_link": "https://www.amazon.co.jp/s?k=%E3%82%B3%E3%83%BC%E3%83%89%E3%82%AB%E3%83%90%E3%83%BC"
        },
        {
            "traffic_keyword": "コードカバー ペット",
            "keyword_link": "https://www.asinseed.com/en/JP?q=%E3%82%B3%E3%83%BC%E3%83%89%E3%82%AB%E3%83%90%E3%83%BC%20%E3%83%9A%E3%83%83%E3%83%88",
            "monthly_searches": "3,195",
            "amazon_search_link": "https://www.amazon.co.jp/s?k=%E3%82%B3%E3%83%BC%E3%83%89%E3%82%AB%E3%83%90%E3%83%BC%20%E3%83%9A%E3%83%83%E3%83%88"
        },
        // ...
        {
            "monthly_searches": ""
        }
    ],
    "product_info": {
        "image_url": "https://m.media-amazon.com/images/I/41Q7bZ1H94L._AC_US200_.jpg",
        "goto_amazon": "https://www.amazon.co.jp/dp/B0B658JC22",
        "main_text": "MEL Chemistry大径 肉厚 ペットコード ペット 犬 猫 キャット ドッグ 噛みつき 防止 感電 保護 家電 チャージ コード 配線 プロテクター カバー 螺旋 スパイラル チューブ ラップ 被覆 破れ 防止 破損防止 補強 収納 収束 結束 まとめる TPU 約93cm (ブラック 黒)B0B658JC22",
        "imgbase64": "/9j/4AAQSkZJRgABAQAAAQABAAD/..."
    },
    "unique_words": [
        {
            "word": "コードカバー"
        },
        {
            "word": "猫"
        },
        {
            "word": "ケーブルカバー"
        },
        // ...
    ]
}

我想根据上述 json 文件内容写入到一个表格,用 pandas 模块写入。 一个 json 文件对应 3 列表格。

  • 每列的第一行是图片,不是标题。
  • 第二行才是标题,标题是来自传参 asin ,例如 "B0CQ1SHD8V" 。每行的内容是来自 result_table 的 "traffic_keyword" 字段。如果可以的话,将每行的内容用超链接链接到 result_table 的 "amazon_search_link" 字段。
  • 第二行标题的第二列:标题是搜索量 ,每行的内容是来自 result_table 的 "monthly_searches" 字段。
  • monthly_searches 在写入前需要转换为数字,排序从大到小,,并且超过 1万的数值需要标红。
  • result_table 插入完后,末尾隔出一行,开始新增 product_info 和 unique_words 。
  • 第三列空出来,方便下一个文件隔开

目前生成的excel存在问题:

  • 每列的 “搜索量” 超过1w没有标红

生成 excel

{
    "result_table": [
        {
            "traffic_keyword": "コードカバー",
            "keyword_link": "https://www.asinseed.com/en/JP?q=%E3%82%B3%E3%83%BC%E3%83%89%E3%82%AB%E3%83%90%E3%83%BC",
            "monthly_searches": "9,332",
            "amazon_search_link": "https://www.amazon.co.jp/s?k=%E3%82%B3%E3%83%BC%E3%83%89%E3%82%AB%E3%83%90%E3%83%BC"
        },
        {
            "traffic_keyword": "コードカバー ペット",
            "keyword_link": "https://www.asinseed.com/en/JP?q=%E3%82%B3%E3%83%BC%E3%83%89%E3%82%AB%E3%83%90%E3%83%BC%20%E3%83%9A%E3%83%83%E3%83%88",
            "monthly_searches": "3,195",
            "amazon_search_link": "https://www.amazon.co.jp/s?k=%E3%82%B3%E3%83%BC%E3%83%89%E3%82%AB%E3%83%90%E3%83%BC%20%E3%83%9A%E3%83%83%E3%83%88"
        },
        // ...
        {
            "monthly_searches": ""
        }
    ],
    "product_info": {
        "image_url": "https://m.media-amazon.com/images/I/41Q7bZ1H94L._AC_US200_.jpg",
        "goto_amazon": "https://www.amazon.co.jp/dp/B0B658JC22",
        "main_text": "MEL Chemistry大径 肉厚 ペットコード ペット 犬 猫 キャット ドッグ 噛みつき 防止 感電 保護 家電 チャージ コード 配線 プロテクター カバー 螺旋 スパイラル チューブ ラップ 被覆 破れ 防止 破損防止 補強 収納 収束 結束 まとめる TPU 約93cm (ブラック 黒)B0B658JC22",
        "imgbase64": "/9j/4AAQSkZJRgABAQAAAQABAAD/..."
    },
    "unique_words": [
        {
            "word": "コードカバー"
        },
        {
            "word": "猫"
        },
        {
            "word": "ケーブルカバー"
        },
        // ...
    ]
}

我想根据上述 json 文件内容写入到一个表格,用 pandas 模块写入。 一个文件对应 3 列表格。 第一列:标题是来自传参 asin ,例如 "B0CQ1SHD8V" 。每行的内容是来自 result_table 的 "traffic_keyword" 字段。如果可以的话,将每行的内容用超链接链接到 result_table 的 "amazon_search_link" 字段。 第二列:标题是搜索量 ,每行的内容是来自 result_table 的 "monthly_searches" 字段。

因为 result_table 是一个表格总和,他们都有相同的行数,他们可能要筛选或者排列,我希望能够按搜索量进行排序从大到小,由于各个列的情况都不同,你来决定是用 python 原生代码排列再写入,还是写入到 excel 中在用excel接口进行排序。而且超过 1万的数值需要标红。

但是 product_info 和 unique_words 是一个单独的字段,如果嵌入到同一个表格中,会影响 table 的排序,你觉得如何构造 excel 表格,放在最后一行可以吗?比如在 result_table 生成的 excel 结果下方新增 product_info 和 unique_words 的行。

并且 Base64 图片插入到产品信息行所在的位置附近。

文件中只获取了单个 json 文件,未来需要读取多个 json 文件,写入到表格中,用空列隔开。例如上述案例中,存在2列,然后隔开一列,从第三列新增新的 json 文件,新增各自的 result_table 、 product_info 、 unique_words,因此需要保持代码的兼容性,可扩展性。

目前生成的excel存在问题:

  • 重构不完整
  • 我将 json 文件改成数据模型 DataProcessor DataUtils BaseExcelComponent 还有存在的必要吗?删去,并且不需要校验功能。
  • 不要硬编码。例如 img_data.startswith('/9j/') 这种写法大错特错。

请重构代码。 必须符合最佳编码规范,高内聚,低耦合,用类来管理模块。

我想根据上述文件内容写入到数据库,现在 submit_extract_task_and_wait 函数已经将 json 文件上传到 S3 并且保存到数据库路径,你只需从数据库中读取,获取 s3 的文件路径获取 json 内容。然后在一个新表中中写入。 新表的字段如下: asin: str traffic_keyword: str monthly_searches: str keyword_link: str
amazon_search_link: str tail_keyword: dict