我有下面这段代码,我在其中解析字典中的数据,并使用pyodbc库将数据生成一个表.

import pyodbc
 
data = {
  "demographic": [
    {
      "id": 1,
      "country": {
        "code": "AU",
        "name": "Australia"
      },
      "state": {
        "name": "New South Wales"
      },
      "location": {
        "time_zone": {
          "name": "(UTC+10:00) Canberra, Melbourne, Sydney",
          "standard_name": "AUS Eastern Standard Time",
          "symbol": "AUS Eastern Standard Time"
        }
      },
      "address_info": {
        "address_1": "",
        "address_2": "",
        "city": "",
        "zip_code": ""
      }
    },
    {
      "id": 2,
      "country": {
        "code": "AU",
        "name": "Australia"
      },
      "state": {
        "name": "New South Wales"
      },
      "location": {
        "time_zone": {
          "name": "(UTC+10:00) Canberra, Melbourne, Sydney",
          "standard_name": "AUS Eastern Standard Time",
          "symbol": "AUS Eastern Standard Time"
        }
      },
      "address_info": {
        "address_1": "",
        "address_2": "",
        "city": "",
        "zip_code": ""
      }
    },
    {
      "id": 3,
      "country": {
        "code": "US",
        "name": "United States"
      },
      "state": {
        "name": "Illinois"
      },
      "location": {
        "time_zone": {
          "name": "(UTC-06:00) Central Time (US & Canada)",
          "standard_name": "Central Standard Time",
          "symbol": "Central Standard Time"
        }
      },
      "address_info": {
        "address_1": "",
        "address_2": "",
        "city": "",
        "zip_code": "60611"
      }
    }
  ]
}

result = [(d["id"], d["country"]["name"], d["address_info"]["zip_code"]) for d in data["demographic"] if d["country"]["code"] == "US"]

现在我需要将这个结果写入一个表,该表的id、Country_Name、Zip

我正在try 下面的代码,但不确定如何循环遍历国家代码为US的所有记录,并将值映射到参数标记.我有游标设置,但不知道如何从Python词典中读取内容.

for r in result:
    sql = """INSERT INTO tname (id, country_name, zip) VALUES (?, ?, ?)"""
    
    cursor.execute(sql, params)
    conn.commit()

推荐答案

不确定如何遍历国家代码为美国的所有记录

您已经有了一个循环.只需添加一条打印语句

for r in result:
    print(r)

如何从Python 词典中阅读.

假设上面的代码打印了您所期望的内容,您已经做到了这一点.现在,您已经有了一个元组列表.

将值映射到参数标记

尝尝这个

conn =... 
cursor = conn.cursor()
sql = """INSERT INTO tname (id, country_name, zip) VALUES (?, ?, ?)"""
for r in result:
    cursor.execute(sql, r)
conn.commit()

Python相关问答推荐

如果值不存在,列表理解返回列表

如何从.cgi网站刮一张表到rame?

如何使用pytest来查看Python中是否存在class attribution属性?

如何使用表达式将字符串解压缩到Polars DataFrame中的多个列中?

mypy无法推断类型参数.List和Iterable的区别

多处理队列在与Forking http.server一起使用时随机跳过项目

如何从列表框中 Select 而不出错?

在matplotlib中删除子图之间的间隙_mosaic

Maya Python脚本将纹理应用于所有对象,而不是选定对象

如何创建引用列表并分配值的Systemrame列

干燥化与列姆化的比较

如何在Great Table中处理inf和nans

处理Gekko的非最优解

在我融化极点数据帧之后,我如何在不添加索引的情况下将其旋转回其原始形式?

修改.pdb文件中的值并另存为新的

按列表分组到新列中

解析CSV文件以将详细信息添加到XML文件

在Django REST框架中定义的URL获得404分

为什么这个正则表达式没有捕获最后一次输入?

大Pandas 每月重新抽样200万只和300万只