如何在本地计算机上存储JSON数据?
这个问题困扰了我好几个月,现在,无论我读了多少文章和主题,我都没有得到好的信息 我想向返回JSON文件的服务器发送一个请求。我想将这些结果加载到本地机器上的表中。最好是Access或Excel,以便我可以对数据进行排序和操作 有没有办法做到这一点。。。?请帮忙 Json(像xml一样)是一个树,而不是元素的文本表。您需要手动填充表(基本上是执行一堆SQL如何在本地计算机上存储JSON数据?,json,Json,这个问题困扰了我好几个月,现在,无论我读了多少文章和主题,我都没有得到好的信息 我想向返回JSON文件的服务器发送一个请求。我想将这些结果加载到本地机器上的表中。最好是Access或Excel,以便我可以对数据进行排序和操作 有没有办法做到这一点。。。?请帮忙 Json(像xml一样)是一个树,而不是元素的文本表。您需要手动填充表(基本上是执行一堆SQL左联接),或者手动填充一堆表并操作联接 或者JSON是扁平包装的?也许可以按你的要求去做,我只是想指出,这并不能保证 如果它是一个快速的乱码,并
左联接
),或者手动填充一堆表并操作联接
或者JSON是扁平包装的?也许可以按你的要求去做,我只是想指出,这并不能保证
如果它是一个快速的乱码,并且数据是扁平的,那么读取json、转储到csv然后在Excel中打开的快速脚本可能最简单。我想在Access或Excel中存储并不容易。基本上,您必须使用任何支持json字符串的编程语言(PHP、NodeJS、Python等)解析json字符串,然后使用库输出包含数据的Excel工作表
根据您对编程语言的熟练程度,还可以选择使用ElasticSearch搜索引擎或CouchDB数据库,这两种数据库都支持json本地输入。然后,您可以使用它们以各种方式查询内容。谷歌提出了以下建议: 或者编写自己的小应用程序 编辑 我决定友好地为您编写一个Python 3应用程序。在命令行上使用,如
python-jsontoxml.py-infie1.json-infie2.json
,它将输出infie1.json.xml和infie2.json.xml
#!/usr/bin/env python3
import json
import sys
import re
from xml.dom.minidom import parseString
if len(sys.argv) < 2:
print("Need to specify at least one file.")
sys.exit()
ident = " " * 4
for infile in sys.argv[1:]:
orig = json.load(open(infile))
def parseitem(item, document):
if type(item) == dict:
parsedict(item, document)
elif type(item) == list:
for listitem in item:
parseitem(listitem, document)
else:
document.append(str(item))
def parsedict(jsondict, document):
for name, value in jsondict.items():
document.append("<%s>" % name)
parseitem(value, document)
document.append("</%s>" % name)
document = []
parsedict(orig, document)
outfile = open(infile + ".xml", "w")
xmlcontent = parseString("".join(document)).toprettyxml(ident)
#http://stackoverflow.com/questions/749796/pretty-printing-xml-in-python/3367423#3367423
xmlcontent = re.sub(">\n\s+([^<>\s].*?)\n\s+</", ">\g<1></", xmlcontent, flags=re.DOTALL)
outfile.write(xmlcontent)
样本输出
{"widget": {
"debug": "on",
"window": {
"title": "Sample Konfabulator Widget",
"name": "main_window",
"width": 500,
"height": 500
},
"image": {
"src": "Images/Sun.png",
"name": "sun1",
"hOffset": 250,
"vOffset": 250,
"alignment": "center"
},
"text": {
"data": "Click Here",
"size": 36,
"style": "bold",
"name": "text1",
"hOffset": 250,
"vOffset": 100,
"alignment": "center",
"onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}
}}
<widget>
<debug>on</debug>
<window title="Sample Konfabulator Widget">
<name>main_window</name>
<width>500</width>
<height>500</height>
</window>
<image src="Images/Sun.png" name="sun1">
<hOffset>250</hOffset>
<vOffset>250</vOffset>
<alignment>center</alignment>
</image>
<text data="Click Here" size="36" style="bold">
<name>text1</name>
<hOffset>250</hOffset>
<vOffset>100</vOffset>
<alignment>center</alignment>
<onMouseUp>
sun1.opacity = (sun1.opacity / 100) * 90;
</onMouseUp>
</text>
</widget>
在…上
主窗口
500
500
250
250
居中
文本1
250
100
居中
sun1.opacity=(sun1.opacity/100)*90;
我以前也做过。将JSON转换为HTML表。这意味着,您可以转换为csv。
然而,这里有一些事情你需要知道
1) JSON数据必须很好地格式化为预定义的结构。e、 g
{
[
['col1', 'col2', 'col3'],
[data11, data12, data13],
...
]
}
2) 你必须逐行、逐列地解析数据。如果可能的话,您必须处理丢失的数据或不匹配的列。当然,您必须了解数据类型
3) 我的经验是,若你们有非常大的数据,那个么这样做会杀死客户端的浏览器。您必须逐步从服务器获取格式化的HTML或CSV数据
正如上面nightcracker所建议的,试试谷歌工具。:) 这可能有些过分,但使用JSON样式的文档作为本机格式。这意味着您可以直接插入JSON数据,几乎不需要修改。它可以自己处理JSON数据,而无需跳转到更友好的RDBMS格式 它是开源软件,可用于大多数主要平台。它还可以处理大量数据和多台服务器 它的命令外壳可能没有Excel或Access那么容易使用,但它可以自己进行排序等,如果您发现需要做更棘手的事情,大多数编程语言(如C、Python和Java)都有绑定 编辑: 对于从其他更常见的格式导入/导出数据,MongoDB有两种方法。CSV是受支持的,尽管您应该记住JSON使用结构化对象,而且直接映射到基于表的模型(如CSV)并不容易,特别是在无模式数据库(如MongoDB)上 将JSON转换为CSV或任何其他RDBMS友好格式接近(如果它没有直接进入)字段,或者通常既不简单也不容易自动化 例如,MongoDB工具允许您创建CSV文件,但您必须指定每个COLLMN中的字段,隐式地假设数据中实际上存在某种模式
MongoDB允许您存储和操作结构化JSON数据,而无需经过繁琐的映射过程,这可能会非常令人沮丧。您必须改变您的思维方式,稍微远离传统的数据库表格视图,但它允许您按照预期的方式处理数据,而不是试图将表格模型强加在数据上。是的,我看到了这一点,感到很兴奋。不幸的是,这里没有任何说明或文档,所以我无法理解如何使用它。我试图进入MongoDB,但恐怕我没有走多远。我试图在一开始创建DB,但它冻结在我身上,我不知道为什么。。。也许我会再试一次。一旦进入Mongo,是否可以将文件导出到CSV?这是一个小型扁平封装(我想)。每个返回的JSON中有1000行数据。