首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用更改键在JSON上迭代&参数化MySQL查询

使用更改键在JSON上迭代&参数化MySQL查询
EN

Stack Overflow用户
提问于 2022-05-02 18:36:13
回答 1查看 84关注 0票数 0

我想在加载的json文件上迭代更改键。不同的json文件都具有相同的结构,但有时添加/不存在keys+values:

代码语言:javascript
复制
...
{
        "kind": "something",
        "data": {
          "created": Unix-Timestamp,
          "changed": Unix-Timestamp,
          "comment": "Comment",
          "author": "Le-Moi",
          "stuff": false,
...

我用:

代码语言:javascript
复制
json_objects = len(json_loaded['data']['children'])
for objects in range(json_objects):
                        try:
                            created = json_value['data']['created']
                        except:
                            created = 0
...

但是,必须有一种“更简单”的方法来避免在不存在的keys+values....is上出错吗?特别是因为json文件中有大约120个键,所以我想将其导入MySQL-Database。

此外,我希望使用mysql.connector for python在准备好的参数化SQL-查询中使用这些值。直到现在,我做了:insert_command = "INSERT INTO mytable (column1, column2) VALUES ('%s', %s)",并添加了一个python参数。

编辑:I成功地创建了一个动态查询,其中键和值是通过字符串加法添加的(多亏了-> tutorialspoint.com/How-do-I-loop-through-a-JSON-file-with-multiple-keys-sub-keys-in-Python):

代码语言:javascript
复制
for (k, v) in json_loaded['data']['children'][k]['data'].items():
        keys += str(k) + ", "
        if type(v) is str:
                v = "'" + v + "'"
                values += str(v) + ", "
        keys = keys[:-2]
        values = values[:-2]
...

但是现在我得到了以下错误:由dict值(?)引起的mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '[{'e': 'text', 't': 'Resource'}], ...。是否可以通过准备好的查询插入那个长的“字符串”?

EN

回答 1

Stack Overflow用户

发布于 2022-05-05 09:05:10

我设法以一种“肮脏”的方式解决了我的问题。首先,我试图将我的单元格输入转换成二进制字符串,但这并不是很方便.我的解决方案是使用xxx.replace("'", "`")函数替换所有转义字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72090962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档