我在这里尝试解析来自 sql 表的 JSON 字符串,但在解析它时在第 result = json_normalize(json_st,'results')
行给出错误TypeError: string indices must be integers
这是代码片段
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')
对此的任何建议都将有所帮助。
谢谢
多姆尼克。
查看函数签名,它需要一个数据变量和一些可选的参数。
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'
?
你的数据变量需要是一个字典,或者字典列表(即python中的json)