繁体   English   中英

将 JSON Extract 从 rest api 传递到 python 中的 SQL Server

[英]Passing a JSON Extract from a rest api to a SQL Server in python

我对 py 编程很陌生; 如果这是一个愚蠢的问题,请原谅。

我需要执行两个操作

  1. 从 Rest API 中提取 json 文件(将有大量的键/值对)

  2. 将表格格式的数据提取传递给 SQL Server

我编写了一个仅包含 03 个参数的示例函数,这些参数被传递到我系统上的 SQL Server。

如果在 json 提取的情况下存在未知数量的参数,此函数将如何更改?

def InsertJsonsql(Name, City, Age):
    connection = pyodbc.connect('Driver={SQL Server};'
                                'Server=IN2367403W1\SQLEXPRESS;' #IN2367403W1\SQLEXPRESS : use server name 
                                'Database=TestDB;'
                                'Trusted_Connection=yes;')

cursor = connection.cursor()

json_insert_query = """
                        INSERT INTO TestDB.dbo.Person (Name, City, Age) VALUES ('{}', '{}', '{}') 
                    """.format(Name, City, Age)


cursor.execute(json_insert_query)
connection.commit()
print("Record inserted successfully into Person table")

正如@shimo在评论中提到的,像 mysql 或 Windows SQL 这样的关系数据库在创建时是固定的。 所以你不能添加新列来处理未知数量的参数。

据我所知,您有两种选择:

1.) 使用像 MongoDB 这样的 NoSQL 数据库。 那里的数据保存为 JSON,因此它可以处理任意数量的键值对。 这是最安全、最好的方法。

2.) 如果您必须使用关系数据库,您可能必须在表中创建一个可以处理长字符串的列,并将您的数据保存为该列中的 JSON 字符串。 这不是一个好的解决方案,您应该使用 NoSQL 数据库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM