我想在加载的json文件上迭代更改键。不同的json文件都具有相同的结构,但有时添加/不存在keys+values:
...
{
"kind": "something",
"data": {
"created": Unix-Timestamp,
"changed": Unix-Timestamp,
"comment": "Comment",
"author": "Le-Moi",
"stuff": false,
...我用:
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):
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'}], ...。是否可以通过准备好的查询插入那个长的“字符串”?
发布于 2022-05-05 09:05:10
我设法以一种“肮脏”的方式解决了我的问题。首先,我试图将我的单元格输入转换成二进制字符串,但这并不是很方便.我的解决方案是使用xxx.replace("'", "`")函数替换所有转义字符。
https://stackoverflow.com/questions/72090962
复制相似问题