我想听听你关于如何在Ubuntu上处理大型(40MB)JSON文件的建议.我想在vim或gedit或任何其他编辑器中看到它很漂亮.人们可以找到关于如何美化JSON的数学教程,但是,他们不必处理大量输入.我还想象我可以通过pygments或任何其他语法高亮显示管道传输数据.我很想听听你的想法.
示例下载:
wget -O large-dataset.json http://data.wien.gv.at/daten/wfs?service=WFS&request=GetFeature&version=1.1.0&typeName=ogdwien:BAUMOGD&srsName=EPSG:4326&outputFormat=json
Run Code Online (Sandbox Code Playgroud)
请注意下载大小!
编辑:我发现meld工作有点.应用程序不会立即加载整个文件,这会阻止用户界面.相反,它顺序读取文件内容.
我有一个L元素列表,比如自然数.我想用一个空格作为分隔符将它们打印在一行中.但我不希望在列表的最后一个元素之后(或在第一个元素之前)有空格.
在Python 2中,可以使用以下代码轻松完成此操作.print声明的实现(神秘地,我必须承认)避免在换行符之前打印额外的空格.
L = [1, 2, 3, 4, 5]
for x in L:
print x,
print
Run Code Online (Sandbox Code Playgroud)
但是,在Python 3中,似乎使用该print函数的(假设的)等效代码在最后一个数字之后产生一个空格:
L = [1, 2, 3, 4, 5]
for x in L:
print(x, end=" ")
print()
Run Code Online (Sandbox Code Playgroud)
当然,我的问题很简单.我知道我可以使用字符串连接:
L = [1, 2, 3, 4, 5]
print(" ".join(str(x) for x in L))
Run Code Online (Sandbox Code Playgroud)
这是一个非常好的解决方案,但与Python 2代码相比,我发现它反直觉并且肯定更慢.另外,我知道我可以选择是否打印空间,例如:
L = [1, 2, 3, 4, 5]
for i, x in enumerate(L):
print(" " if i>0 else "", x, sep="", …Run Code Online (Sandbox Code Playgroud) 我正在使用SQLite访问数据库并检索所需的信息.我在Python 2.6版中使用ElementTree来创建包含该信息的XML文件.
import sqlite3
import xml.etree.ElementTree as ET
# NOTE: Omitted code where I acccess the database,
# pull data, and add elements to the tree
tree = ET.ElementTree(root)
# Pretty printing to Python shell for testing purposes
from xml.dom import minidom
print minidom.parseString(ET.tostring(root)).toprettyxml(indent = " ")
####### Here lies my problem #######
tree.write("New_Database.xml")
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用tree.write("New_Database.xml", "utf-8")上面代码的最后一行,但它根本没有编辑XML的布局 - 它仍然是混乱的混乱.
我还决定摆弄并尝试做:而不是将其打印到Python shell,这给出了错误AttributeError:'unicode'对象没有属性'write'.
tree = minidom.parseString(ET.tostring(root)).toprettyxml(indent = " ")
当我将我的树写到最后一行的XML文件时,是否有一种方法可以像在Python shell中那样打印到XML文件?
我可以toprettyxml()在这里使用,还是有不同的方法来做到这一点?
假设我有一个如下定义的二叉树数据结构
type 'a tree =
| Node of 'a tree * 'a * 'a tree
| Nil
Run Code Online (Sandbox Code Playgroud)
我有一个树的实例如下:
let x =
Node
(Node (Node (Nil,35,Node (Nil,40,Nil)),48,Node (Nil,52,Node (Nil,53,Nil))),
80,Node (Node (Nil,82,Node (Nil,83,Nil)),92,Node (Nil,98,Nil)))
Run Code Online (Sandbox Code Playgroud)
我正在尝试将树打印成易于理解的东西.最好,我想在控制台窗口中打印树,如下所示:
_______ 80 _______
/ \
_ 48 _ _ 92 _
/ \ / \
35 52 82 98
\ \ /
40 53 83
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让我的树以这种格式输出?
我正在使用org.w3c XML API打开现有XML文件.我正在删除一些节点,而我正在添加其他节点.
问题是添加的新节点是一个接一个地写入的,没有换行符,也没有缩进.虽然XML文件确实有效,但人们很难检查它.
无论如何都要添加缩进,或者至少在每个节点后添加换行符?
我有一个dicts列表,其中包含来自sql查询的字段classid,dept,coursenum,area和title.我想以人类可读的格式输出值.我在每个顶部想到一个Column标题,然后在每个列中考虑approrpiate输出,即:
CLASSID DEPT COURSE NUMBER AREA TITLE
foo bar foo bar foo
yoo hat yoo bar hat
Run Code Online (Sandbox Code Playgroud)
(显然标准对齐/间距)
我如何在python中实现这一目标?
我有一个xml文件,我正在使用lxml中的etree来处理,但是当我向它添加标签时,漂亮的打印似乎不起作用.
>>> from lxml import etree
>>> root = etree.parse('file.xml').getroot()
>>> print etree.tostring(root, pretty_print = True)
<root>
<x>
<y>test1</y>
</x>
</root>
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.但现在
>>> x = root.find('x')
>>> z = etree.SubElement(x, 'z')
>>> etree.SubElement(z, 'z1').attrib['value'] = 'val1'
>>> print etree.tostring(root, pretty_print = True)
<root>
<x>
<y>test1</y>
<z><z1 value="val1"/></z></x>
</root>
Run Code Online (Sandbox Code Playgroud)
它不再漂亮了.我还试图"向后"创建z1标签,然后创建z标签并将z1附加到它,然后将z标签附加到x标签.但我得到了相同的结果.
如果我不解析文件并只是一次创建所有标签,它将正确打印.所以我认为它与解析文件有关.
如何让漂亮的印刷工作?
我正在寻找一种方法来自动格式化和编写我在HTML文档中编写的代码.我知道维基百科会这样做,例如在页面上:http://en.wikipedia.org/wiki/Nested_function
我确信有些图书馆可以做到这一点,但我不能为我的生活找到一个.有没有人有什么建议?
我正在使用这个要点的树,现在我正在试图弄清楚如何对文件进行漂亮打印.有小费吗?
我有一个XML文件存储为DOM文档,我想将它打印到控制台,最好不使用外部库.我知道这个问题已在本网站上被多次询问,但以前的答案都没有对我有用.我正在使用java 8,所以也许这是我的代码与以前的问题不同的地方?我还尝试使用从网络上找到的代码手动设置变换器,但这只是导致not found错误.
这是我的代码,它当前只是在控制台左侧的新行上输出每个xml元素.
import java.io.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class Test {
public Test(){
try {
//java.lang.System.setProperty("javax.xml.transform.TransformerFactory", "org.apache.xalan.xsltc.trax.TransformerFactoryImpl");
DocumentBuilderFactory dbFactory;
DocumentBuilder dBuilder;
Document original = null;
try {
dbFactory = DocumentBuilderFactory.newInstance();
dBuilder = dbFactory.newDocumentBuilder();
original = dBuilder.parse(new InputSource(new InputStreamReader(new FileInputStream("xml Store - Copy.xml"))));
} catch (SAXException | IOException | ParserConfigurationException e) {
e.printStackTrace();
}
StringWriter stringWriter = new StringWriter();
StreamResult xmlOutput = new StreamResult(stringWriter); …Run Code Online (Sandbox Code Playgroud) pretty-print ×10
python ×5
xml ×4
java ×2
dictionary ×1
dom ×1
elementtree ×1
f# ×1
formatting ×1
hash ×1
html ×1
json ×1
lxml ×1
parsing ×1
python-2.6 ×1
python-3.x ×1
string ×1
terminal ×1
tree ×1
ubuntu ×1