json.loads格式化问题

2024-04-25 23:32:57 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我需要的数据格式如下:

{
    "Data": {
        "name1": "val1",
        "name2": "val2",
        "name3": "val3",
        "name4": "val4"
    },
    "IMPORTANT_NOTE": "This data is from the test database - used for demonstration only!"
}

数据本身作为JSON存储在数据库中,因此它是1个字段。数据检索如下:

^{pr2}$

如果i print(jsondata),则返回以下内容

{
  "name1": "val1",
  "name2": "val2",
  "name3": "val3",
  "name4": "val4"
}

我已经习惯了PHP,所以我希望使用一个数组来形成其余的数据,并用json_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),但是cgitb报告了一个错误(我假设是因为{}是基于文件的等价物

<type 'exceptions.AttributeError'>: 'str' object has no attribute 'read' 
      args = ("'str' object has no attribute 'read'",) 
      message = "'str' object has no attribute 'read'"

有什么想法可以纠正我如何以类似于顶部的格式输出数据?在


Tags: fromdataisthisnotename1val1important