如何在Python中从JSON文件中提取特定数据并保存为CSV文件

ymdaylpp  于 2023-07-01  发布在  Python
关注(0)|答案(1)|浏览(92)

我已经导入了下面的json文件“https://pastebin.com/embed_js/PknXEGq2”并提取了其中的所有产品,现在我需要以这种特定格式打印每个可用的产品:“您可以在我们的商店购买Product_Name,价格为Product_Price”,Product_Name是产品名称,截短为30,Product_Price是dd.d格式的四舍五入产品价格(例如:13.34 ==> 13.3)。
1.如果产品不可用,它将记录产品ID和产品名称
1.如果找不到产品可用性的线索,则记录错误
1.它将可用产品保存在CSV文件中。

import json
 data = json.load(open('data.json'))
 save_data = []

 def get_products():
 query_access = data['Bundles']
 for question_data in query_access:
    save_data.append(question_data)
    print(save_data)

 get_products()
ruarlubt

ruarlubt1#

假设你的json文件看起来像这样:

{
  "my_data": [
    {
      "name": "Garlic",
      "price": 2.2
    },
    {
      "name": "Potatoes",
      "price": 7.1,
      "quality": "Decent"
    },
    {
      "name": "Tomatoes",
      "price": 6.9,
      "avaiable": "No"
    }
  ],
  "useless_data": [
    {
      "some": "useless",
      "data": [
        "here"
      ]
    }
  ]
}

如果你只需要名称、价格和数量,你的代码可以是这样的:

import json
import csv

data = json.load(open("MyBeautifulFile.json"))["my_data"]
useful_columns = ["name", "price", "quality"]
default_value = ""

with open('MyBeautifulFile.csv', mode='w') as csv_file:
    writer = csv.DictWriter(csv_file, fieldnames=useful_columns)
    writer.writeheader()

    for obj in data:
        row = {}
        for column in useful_columns:
            if column in obj.keys():
                row[column] = obj[column]
            else:
                row[column] = default_value
        writer.writerow(row)

相关问题