当前位置: 首页 > 知识库问答 >
问题:

使用Python脚本将issue while Json文件导入Mysql db

羊舌承
2023-03-14

我已经创建了用于在mysql中创建表的python脚本,并将json文件导入到mysql DB中。我在下面分享了

Json文件

{“ansible_facts”:{“ansible_network_resources”:{“l3_interfaces”:[{“name”:“GigabitEthernet0/0”},{“name”:“GigabitEthernet0/0.100”,“IPv4”:[{“address”:“172.1.1.1 255.255.255.252”}]},{“name”:“GigabitEthernet0/0.101”,“IPv4”:[{“address”:“172.1.1.1 255.255.255.252”}]},{“name”:“GigabitEthernet0/1”,“IPv4”:[{“

# Table creation in mysql db
import mysql.connector
mydb = mysql.connector.connect( host="IPaddress", user="user", password="pw", database="db")
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE Routers (ansible_net_hostname NVARCHAR(255), ansible_net_model NVARCHAR(255), ansible_network_resources NVARCHAR(255))")

# Importing Json file into Mysql - Python script
import json, pymysql
json_data=open("L3_out.json").read()
json_obj=json.loads(json_data)
con=pymysql.connect(host="IPaddress", user="user", password="pw", database="db")

cursor=con.cursor()
for item in json_obj:
    ansible_net_hostname=item.get("ansible_net_hostname")
    ansible_net_model=item.get("ansible_net_model")
    ansible_network_resources=item.get("ansible_network_resources")
    cursor.execute("insert into Routers(ansible_net_hostname,ansible_net_model,ansible_network_resources) value(%s,%s,%s)",(ansible_net_hostname,ansible_net_model,ansible_network_resources)
con.commit()
con.close()

共有1个答案

陆子默
2023-03-14

首先,我们不清楚

for item in json_obj:
    ansible_net_hostname=item.get("ansible_net_hostname")

工作。因为在你的例子中'item'是字典中的键。在您显示的文件中,只有一个根键“ansible_facts”。所以您正在尝试对字符串调用get()。要获取“Ansible_Network_Resources”的数据,请执行以下操作:

for key in json_obj:
    ansible_network_resources=json_obj[key].get("ansible_network_resources")
 类似资料:
  • 问题内容: 我正在导入许多不同的脚本,因此在文件的顶部,它会被导入语句弄得乱七八糟,即: 有没有办法将所有这些都移动到其他地方,然后我要做的就是导入该文件,所以它只是一个干净的导入? 问题答案: 当然有;只需在主文件所在的目录中创建一个名为的文件,然后将导入文件放置在该目录中即可。然后,您可以简单地在主脚本中使用。

  • 我正在从我的Java代码中调用一个Python脚本。这是代码: python.py工作 python.py不起作用 所以,我正处于一个关键的阶段,我的启动有一个最后期限,我必须向客户展示我的MVP项目,我想像这样调用Python脚本。当我在没有dB连接和MySQLdb库的情况下打印任何东西时,它起作用。但是当我包含它们时,它并不运行python脚本。这里怎么了。不是应该运行处理所有输入的进程吗。我

  • 问题内容: 我想将文件中的每一行加载到HashSet集合中。有没有简单的方法可以做到这一点? 问题答案: 怎么样: (using Guava)。 参考文献: Files.readLines() Sets.newHashSet()

  • 问题内容: 我正在从Google文档中提取数据,进行处理,然后将其写入文件(最终我将其粘贴到Wordpress页面中)。 它具有一些非ASCII符号。如何将这些安全地转换为可以在HTML源代码中使用的符号? 目前,我正在将所有内容都转换为,将它们全部合并为Python字符串,然后执行以下操作: 最后一行存在编码错误: 编解码器无法解码位置12286的字节:序数不在范围内(128) 部分解决方案:

  • 在我的Jenkins构建中,我有一个Groovy脚本(因为我使用的是管道插件),在这个脚本中,我试图使用OkHttpClient进行API调用。 我从这里获得了以下葡萄代码: 为此,我得到: 知道有什么问题吗? 在Jenkins管道脚本中运行时,Grape不能检索包吗?

  • 问题内容: 我有一个CSV文件,我想使用Python将此文件批量导入到sqlite3数据库中。该命令是“ .import .....”。但似乎不能这样工作。谁能给我一个在sqlite3中做事的例子吗?我正在使用Windows,以防万一。谢谢 问题答案: