如何在本地计算机上存储JSON数据?

如何在本地计算机上存储JSON数据?,json,Json,这个问题困扰了我好几个月,现在,无论我读了多少文章和主题,我都没有得到好的信息 我想向返回JSON文件的服务器发送一个请求。我想将这些结果加载到本地机器上的表中。最好是Access或Excel,以便我可以对数据进行排序和操作 有没有办法做到这一点。。。?请帮忙 Json(像xml一样)是一个树,而不是元素的文本表。您需要手动填充表(基本上是执行一堆SQL左联接),或者手动填充一堆表并操作联接 或者JSON是扁平包装的?也许可以按你的要求去做,我只是想指出,这并不能保证 如果它是一个快速的乱码,并

这个问题困扰了我好几个月,现在,无论我读了多少文章和主题,我都没有得到好的信息

我想向返回JSON文件的服务器发送一个请求。我想将这些结果加载到本地机器上的表中。最好是Access或Excel,以便我可以对数据进行排序和操作

有没有办法做到这一点。。。?请帮忙

Json(像xml一样)是一个树,而不是元素的文本表。您需要手动填充表(基本上是执行一堆SQL
左联接
),或者手动填充一堆表并操作联接

或者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行数据。