正在将内容写入已具有头的json文件

2024-09-27 22:22:46 发布

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

因此,我正在试验happybase,我想将扫描序列的内容写入一个json文档,其中包含我已经放入的框架。以下是预期输出文件的框架:

[{
   "Key": "",
   "Values": ""
}]

从代码中,我希望实现目标json文件的最终格式:

^{pr2}$

我的Hbase表的结构是这样的:

'01/01/2009','actual:number',value='30000'
'01/02/2009','predicted:number',value='40000'

这是我用来访问表的代码:

import happybase

import simplejson as sjson

import json

connection = happybase.Connection('localhost')

table = connection.table('Date-Of-Repairs')

file = open('test.json','wb+')

for key, data in table.scan(row_start='01/01/2009'):
    a = key, data
    print sjson.dumps(a)
    json.dump(a,file, indent = 2)

file.close()

我想知道如何实现所需的json输出文件,以及如何停止将写入json的内容打印出来:

[
  "01/01/2009", 
   {
     "Actual:number": "10000", 
     "Predicted:number": "30000"
   }
][
  "01/02/2009", 
  {
    "Actual:number": "40000", 
    "Predicted:number": "40000"
  }
][
  "01/03/2009", 
   {
    "Actual:number": "50000", 
    "Predicted:number": "20000"
   }
]

因为这是在输出文件中显示的当前输出


Tags: 文件代码import框架jsonnumber内容value
2条回答

谢谢@anand。我找到了答案。我只需要创建一个字典来存储表数据,然后将其附加到一个要存储在文件中的列表中,这样就生成了一个完整的json文件。在

代码如下:

import happybase

import json

import csv

file = open('test.json','wb+')

store_file = {}
json_output = []

for key, data in table.scan(row_start='01/01/2009'):
   store_file['Key'] = key
   store_file['Value'] = data
   json_output.append(store_file.copy())
   print json_output

json.dump(json_output,file, indent = 2)

file.close()

然后得出:

^{pr2}$

我希望这能帮助那些陷入这种问题的人。在

Pythonjson库对JSON文本使用标准格式,它有indent参数,可以帮助您控制缩进时应考虑的空格数。在

json.dumps(pydict, indent=4)

如果您需要一个压缩的JSON,它很适合在生产中使用,您可以忽略它,python将生成缩小的文本,从而减少网络流量和解析时间。在

如果你想用自己的方式打印,那么你必须自己实现它,有一个名为pjson的模块,你可以用它作为一个例子来说明如何进行打印。在

相关问题 更多 >

    热门问题