我正在尝试解析来自sql表的JSON字符串,但在解析它时会在第TypeError: string indices must be integers
行给出错误result = json_normalize(json_st,'results')
这是代码段
from pandas.io.json import json_normalize
import pyodbc
cnxn = pyodbc.connect('connection string')
cursor = cnxn.cursor()
cursor.execute("select TOP 1 GEOCODE_ID, JSON from GEOCODE_TBL where GEOCODE_ID = 20")
ID=[]
JSON=[]
for row in cursor.fetchall():
ID.append(row[0])
JSON.append(row[1])
json_st1 = json.dumps(JSON)
json_st=json.loads(json_st1)
result = json_normalize(json_st,'results')
对此有任何建议都会有所帮助。
由于
DOMNICK。
答案 0 :(得分:2)
查看函数签名,它需要一个数据变量和一些可选参数。
pandas.io.json.json_normalize(data, record_path=None, meta=None,
meta_prefix=None, record_prefix=None, errors='raise', sep='.')
data : dict or list of dicts
。因此,您无法将其作为字符串传递。另外,为什么你也传递字符串'results'
?
你的数据变量需要是一个dict或dicts列表(在python中是json)