Python json.1加载格式问题

Python json.1加载格式问题,python,json,Python,Json,我目前正在学习Python背后的基础知识。我的任务是创建一些简单的与数据库相关的Python脚本。我在SELECT脚本中使用JSON时遇到问题 我需要的数据格式如下 { "Data": { "name1": "val1", "name2": "val2", "name3": "val3", "name4": "val4" }, "IMPORTANT_NOTE": "This data is from the

我目前正在学习Python背后的基础知识。我的任务是创建一些简单的与数据库相关的Python脚本。我在
SELECT
脚本中使用JSON时遇到问题

我需要的数据格式如下

{
    "Data": {
        "name1": "val1",
        "name2": "val2",
        "name3": "val3",
        "name4": "val4"
    },
    "IMPORTANT_NOTE": "This data is from the test database - used for demonstration only!"
}
  try:
    db = MySQLdb.connect(dbhost, dbuser, dbpass, sqldb)
  except:
    msg = "Connect error"
  else:
    cursor = db.cursor()
    sql = "SELECT JSON_DATA FROM TEST_DB_TABLE WHERE DATA_GUID= %s"
    args = "TestData"
    cursor.execute(sql,args)
    for row in curosr.fetchall() : jsondata = row[0]
  finally:
    db.close()
数据本身作为JSON存储在数据库中,因此它是1个字段。数据检索如下:

{
    "Data": {
        "name1": "val1",
        "name2": "val2",
        "name3": "val3",
        "name4": "val4"
    },
    "IMPORTANT_NOTE": "This data is from the test database - used for demonstration only!"
}
  try:
    db = MySQLdb.connect(dbhost, dbuser, dbpass, sqldb)
  except:
    msg = "Connect error"
  else:
    cursor = db.cursor()
    sql = "SELECT JSON_DATA FROM TEST_DB_TABLE WHERE DATA_GUID= %s"
    args = "TestData"
    cursor.execute(sql,args)
    for row in curosr.fetchall() : jsondata = row[0]
  finally:
    db.close()
如果i
print(jsondata)
,则返回以下内容

我已经习惯了PHP,所以我希望使用数组来形成其余的数据,并使用
json\u encode
完成它。我知道Python与数组的等价物是字典,所以我觉得这就是我应该在这里使用的。最后我确实试过了

  data = json.loads(jsondata)
  FinOut = {"Data": data, "IMPORTANT_NOTE": "This data is from the test database - used for demonstration only!"
  print(FinOut)
。。。这里的问题是它返回无效的JSON

{'Data': {u'name1': u'val1', u'name2': u'val2', u'name3': u'val3', u'name4': u'val4'}, 'IMPORTANT_NOTE': 'This data is from the test database - used for demonstration only!'}
我确实尝试了
json.load(jsondata)
,但是
cgib
报告了一个错误(我假设是因为
.load
是一个基于文件的等价物

<type 'exceptions.AttributeError'>: 'str' object has no attribute 'read' 
      args = ("'str' object has no attribute 'read'",) 
      message = "'str' object has no attribute 'read'"
:“str”对象没有“read”属性
args=(“'str'对象没有'read'属性,”)
message=“'str'对象没有属性'read'”

关于如何更正此错误以类似于顶部格式的格式输出数据,您有什么想法吗?

您已将JSON对象转换为Python dict。为什么希望dict是有效的JSON?事实并非如此。如果您想要JSON,应将dict转换回该格式:

json_data = json.dumps(FinOut)

您已将JSON对象转换为Python dict。为什么希望dict是有效的JSON?事实并非如此。如果您想要JSON,则应将dict转换回该格式:

json_data = json.dumps(FinOut)

您已将JSON对象转换为Python dict。为什么希望dict是有效的JSON?事实并非如此。如果您想要JSON,则应将dict转换回该格式:

json_data = json.dumps(FinOut)

您已将JSON对象转换为Python dict。为什么希望dict是有效的JSON?事实并非如此。如果您想要JSON,则应将dict转换回该格式:

json_data = json.dumps(FinOut)