繁体   English   中英

Woocommerce 订单导出 API 同一订单的每个项目单独的行 Python

[英]Woocommerce order export API separate rows for each item for the same order Python

我在 Python 中有以下代码。它从 API 从 woocommerce 获取 json 数据,然后制作一个我想要的 csv 文件,这样我就可以自动化操作。 我的问题是我得到的 csv 文件在同一行的一列下包含为订单购买的所有商品。 我想要的是每个项目有 1 行,每个订单的所有其他列保持不变。

import requests
from woocommerce import API
import pandas as pd
import json
import pandas
import csv
from pandas.io.json import json_normalize
import flatten_json



wcapi = API(
    url="https://www.fempharm.gr",
    consumer_key="****************",
    consumer_secret="**************",
    wp_api=True,
    version="wc/v3"
)




data=wcapi.get("orders").json()

pandas.json_normalize(data)

with open('data.json', 'w') as f:
    json.dump(data, f)

df=pandas.read_json("C:\\Users\\John\\OneDrive - ΠΑΛΙΝ\\python projects\\data.json")
df.to_csv(r"C:\\Users\\John\\OneDrive - ΠΑΛΙΝ\\python projects\\data.csv")
df.to_excel(r"C:\\Users\\John\\OneDrive - ΠΑΛΙΝ\\python projects\\data.xlsx")

先感谢您

我没有所有的代码,但我确实认为我有一个策略,适用于那些比我更了解代码的人,我希望你也是。

在我自己的数据上运行它,我注意到当数据框由 Pandas 构建时,它不会创建一个系列或每个预先存在的变量; 这当然是你的困境。 对我来说,这意味着它将计费的所有组成部分集中到一个系列中,即“计费”。 因此,计费包括 first_name、last_name、... phone。

我想到的一个可能的解决方案是分别提取这些众多变量序列中的每一个,然后将它们归一化。 如果变量被分离为它们自己的单个文件,则分别对它们中的每一个重新运行规范化或数据框架可能会将每个变量提取为它自己的系列。 例如,如果我可以将“billing”系列作为自己的文件,然后对其进行规范化,我希望(希望)它将每个子组件分开。

这在战略上有意义吗?

我使用以下方法成功地将“billing”系列提取到单独的 csv 文件中:

import requests
from woocommerce import API
import pandas as pd
import json
import csv
from pandas.io.json import json_normalize



wcapi = API(
    url="https://yoursite.com",
    consumer_key="ck_your_key",
    consumer_secret="cs_your_secret",
    version="wc/v3"
)



orders_p1 = wcapi.get("orders", params={"per_page": 100, "page": 1}).json()
orders_p2 = wcapi.get("orders", params={"per_page": 100, "page": 2}).json()
orders_p3 = wcapi.get("orders", params={"per_page": 100, "page": 3}).json()



pd.json_normalize(orders_p1)
with open('orders_p1.json', 'w') as f:
    json.dump(orders_p1, f)


df=pd.read_json(r"C:\Users\...\orders_p1.json")
df.to_csv(r"C:\Users\...\orders_p1.csv") 

pd.json_normalize(orders_p2)
with open('orders_p2.json', 'w') as f:
    json.dump(orders_p2, f)


df2=pd.read_json(r"C:\Users\...\orders_p2.json")
df2.to_csv(r"C:\Users\...\orders_p2.csv") 

pd.json_normalize(orders_p3)
with open('orders_p3.json', 'w') as f:
    json.dump(orders_p3, f)


df3=pd.read_json(r"C:\Users\...\orders_p3.json")
df3.to_csv(r"C:\Users\...\orders_p3.csv")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM