Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何提取Json数据并导出到csv_Python_Json_Python 3.x_Csv - Fatal编程技术网

Python 如何提取Json数据并导出到csv

Python 如何提取Json数据并导出到csv,python,json,python-3.x,csv,Python,Json,Python 3.x,Csv,JSON示例 { "data": { "Albania": [ { "name": "driving", "title": "driving", "values": [ { "date": "2020-01-13", "value": "100" }, { "date": "2020-01-14", "value": "95.3" }, { "date": "2020-01-15", "value": "101.43" }, { "date": "2020-01-16", "value": "9

JSON示例

{
"data": {
"Albania": [
{
"name": "driving",
"title": "driving",
"values": [
{
"date": "2020-01-13",
"value": "100"
},
{
"date": "2020-01-14",
"value": "95.3"
},
{
"date": "2020-01-15",
"value": "101.43"
},
{
"date": "2020-01-16",
"value": "97.2"
},
{
"date": "2020-01-17",
"value": "103.55"
我预期的CSV输出应该是这样的(作为示例仅包含3行)

世界上有许多国家。我想获得以上格式的所有数据。请帮助

我试着用

with get(URL) as req:
      json_dict = req.json()
      data = json_dict["data"]["Albania"][0]
      name = data["name"]
      title = data["title"]

       Date = []
       Value = []
       for item in data["values"]:
             date = item["date"]
             Date.append(date)
             value = item["value"]
             Value.append(value)

out = {"Country": "Albania", "name": name, "title": title, "date": Date, "value": Value}
Data = pd.DataFrame(out, index=[0])

我尝试了这一操作,但它给出了一个错误:无法将输入数组从形状(93)广播到形状(1)

这可能更容易使用将行写入CSV文件:

from requests import get
from csv import DictWriter

URL = "https://covid19-static.cdn-apple.com/covid19-mobility-data/2005HotfixDev14/v1/en-us/applemobilitytrends.json"

with get(URL) as req:
    json_dict = req.json()
    data = json_dict["data"]["Albania"][0]
    name = data["name"]
    title = data["title"]

    # Open file for writing
    with open(
        "data.csv", mode="w", newline=''
    ) as csv_file:

        # Create dictwriter object to use for writing
        writer = DictWriter(csv_file, fieldnames=["Country", "name", "title", "date", "value"])

        # Write CSV headers
        writer.writeheader()

        # Write each row to CSV file
        for item in data["values"]:
            row = {
                "Country": "Albania",
                "name": name,
                "title": title,
                "date": item["date"],
                "value": item["value"],
            }
            writer.writerow(row)
data.csv

Country,name,title,date,value
Albania,driving,driving,2020-01-13,100
Albania,driving,driving,2020-01-14,95.3
Albania,driving,driving,2020-01-15,101.43
Albania,driving,driving,2020-01-16,97.2
Albania,driving,driving,2020-01-17,103.55
Albania,driving,driving,2020-01-18,112.67
Albania,driving,driving,2020-01-19,104.83
...

要在所有国家/地区迭代,请将此解决方案与@RoadRunner解决方案相结合

从请求导入获取
URL=”https://covid19-static.cdn-apple.com/covid19-mobility-data/2005HotfixDev14/v1/en-us/applemobilitytrends.json"
使用get(URL)作为请求:
json_dict=req.json()
对于键,json_dict['data']中的值。items()
国家=关键
对于有价值的项目:
对于值中的子项:
对于子项['values']中的s:
行={
“国家”:关键,
“名称”:项目[“名称”],
“标题”:项目[“标题”],
“日期”:s[“日期”],
“值”:s[“值”],
}
打印(行)
Country,name,title,date,value
Albania,driving,driving,2020-01-13,100
Albania,driving,driving,2020-01-14,95.3
Albania,driving,driving,2020-01-15,101.43
Albania,driving,driving,2020-01-16,97.2
Albania,driving,driving,2020-01-17,103.55
Albania,driving,driving,2020-01-18,112.67
Albania,driving,driving,2020-01-19,104.83
...