【问题标题】:How do you loop through a dataframe and convert rows to JSON objects如何遍历数据框并将行转换为 JSON 对象
【发布时间】:2021-12-15 19:55:20
【问题描述】:

我正在创建一个将数据发送到远程服务器的函数。我目前正在使用 pandas 库来读取 CSV 文件并将数据转换为数据框。我需要做的是遍历该数据框并将每一行转换为 JSON 并将它们发送到我的数据库。

我需要循环的原因是对于 HTML 字符串来说太大的数据集(当前发送 100 行 x 21 列)太长了。我需要做的是发送循环并发送大量 10 个左右。

下面是我现在的位置:

def UploadData(root, self, data):
        i = 0
        data_arr = []
        for row in data:
            if i % 5 == 0:
                # Add row to array or something
                data_arr.append(row)
                json_str = data_arr.to_json(orient='records')
                url = 'https://newsimland.com/~db/JSON/?tok={"tok":"YOUR TOKEN HERE","cmd":{"STORE":"test_database","VALUE":'+ json_str +'}}'
                r = requests.get(url)
            else:
                # Add row to array
                data_arr.append(row)
            i += 1
        data = r.json()
        if r.status_code == 200:
            Alert(title="Error", text="Data upload unsuccessful")
        else:
            Alert(title="Success", text="Data upload successful")

其中一个问题是.to_json(orient='records') 用于数据帧,而不是我要附加到的数组。此外,如果原始数据帧少于 5 行,则不会将数据发送到数据库。

有谁知道我如何做到这一点?

【问题讨论】:

    标签: python json pandas dataframe


    【解决方案1】:

    如果我对您的理解正确,您希望以 5 行或更少行的部分发送您的 DataFrame。在这种情况下,我建议您按以下方式拆分数据框,以便将行保留为 DataFrame,您可以使用to_json

    import numpy as np
    
    def UploadData(root, self, data):
        size = 5
        for chunk in np.split(data, np.arange(size, data.size, size)):
            if chunk.size:
                json_str = chunk.to_json(orient='records')
                # Send your data here! 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-10
      • 2022-01-15
      • 1970-01-01
      • 2019-01-18
      • 2019-11-11
      • 2021-06-20
      • 2018-05-13
      • 2018-05-20
      相关资源
      最近更新 更多