mmfeng 2024-03-20 16:41 采纳率: 0%
浏览 8

在Json数据如何写入2016的mssql数据表中?

如有这个数据:
N' {"工作数据":[{"ID":274335309,"PN":null,"PO":null,"PID":null,"PName":null,
"No":null,"Color":null,"Size":null,"Qty":0,"EmpNo":null,"DoneTime":null,
"UpdateTime":"2022-12-13T20:02:00","Group":null},
{"ID":275440848,"PN":null,"PO":null,"PID":null,"PName":null,"No":null,
"Color":null,"Size":null,"Qty":0,"EmpNo":null,"DoneTime":null,"UpdateTime":"2022-12-14T16:14:00","Group":null}],"访问统计":[{"AccessTime":"2024-03-20T10:19:32.753","Count":0,"MonthCount":293909}]}}'
怎么把工作数据的数据写入到 2016的mssql 中去?

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-03-20 16:41
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    首先需要将数据中的Unicode编码字符转换为普通字符,并将其转换为JSON对象。可以使用Python中的json库完成这个转换:
    import json
    data = "N' {\"工作数据\":[{\"ID\":274335309,\"PN\":null,\"PO\":null,\"PID\":null,\"PName\":null,\"No\":null,\"Color\":null,\"Size\":null,\"Qty\":0,\"EmpNo\":null,\"DoneTime\":null,\"UpdateTime\":\"2022-12-13T20:02:00\",\"Group\":null},{\"ID\":275440848,\"PN\":null,\"PO\":null,\"PID\":null,\"PName\":null,\"No\":null,\"Color\":null,\"Size\":null,\"Qty\":0,\"EmpNo\":null,\"DoneTime\":null,\"UpdateTime\":\"2022-12-14T16:14:00\",\"Group\":null}],\"访问统计\":[{\"AccessTime\":\"2024-03-20T10:19:32.753\",\"Count\":0,\"MonthCount\":293909}]}}'"
    json_str = data.encode('utf8').decode('unicode_escape')[2:-1]
    json_obj = json.loads(json_str)
    

    然后就可以通过python连接mssql数据库,并插入工作数据的内容了。连接数据库可以使用pyodbc库:

    import pyodbc
    server = 'localhost'
    database = 'myDB'
    username = 'myUsername'
    password = 'myPassword'
    cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+password)
    cursor = cnxn.cursor()
    for work_data in json_obj['工作数据']:
        cursor.execute("INSERT INTO myTable(ID, PN, PO, PID, PName, No, Color, Size, Qty, EmpNo, DoneTime, UpdateTime, Group) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
                       (work_data['ID'], work_data['PN'], work_data['PO'], work_data['PID'], work_data['PName'], work_data['No'], work_data['Color'], work_data['Size'], work_data['Qty'], work_data['EmpNo'], work_data['DoneTime'], work_data['UpdateTime'], work_data['Group']))
    cnxn.commit()
    cnxn.close()
    

    以上代码中的myDB、myUsername、myPassword和myTable应该替换为实际的数据库名称、用户名、密码和表名。执行插入操作时,可以使用类似上面的代码进行循环插入。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月20日