Python错误:“TypeError:字符串索引必须是整数”

时间:2017-11-02 05:47:24

标签: python json pyodbc

我正在尝试解析来自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。

1 个答案:

答案 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)