我想分享一种从 GitHub 漂亮地打印 markdown (*.md) 文件的简单方法。
我发现了很多有趣的方法,主要是在这个问题上。但它们都没有更新和工作,或者我正在寻找什么(一种简单而舒适的漂亮打印方式)。基于几个答案,我设法自己制定了一个可行的解决方案。
也欢迎任何其他解决方案。
我想创建一个 XML 文件。我试过了,但格式看起来很糟糕,它只显示一行。
就这个:
import xml.etree.cElementTree as ET
root = ET.Element("data")
doc = ET.SubElement(root, "status", date="20210123")
ET.SubElement(doc, "name", name="john").text = "some value1"
ET.SubElement(doc, "class", name="abc").text = "some vlaue2"
tree = ET.ElementTree(root)
tree.write("FILE.xml")
Run Code Online (Sandbox Code Playgroud)
输出是:
<data><status date="20210123"><name name="john">some value1</name><class name="abc">some vlaue2</class></status></data>
Run Code Online (Sandbox Code Playgroud)
但我的期望输出是:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<status>
<name name="john">some value1</name>
<class name="abc">some vlaue2</class>
</status>
</data>
Run Code Online (Sandbox Code Playgroud)
任何人都可以给我一个想法,请。我真的很感激。谢谢
所以我有一个Python文件,其中包含大量嵌套字典和列表的数据,如下所示:
recipes = {
"recipe": {
"name": "solar_panel",
"type": "craft",
"ingredients": {
"input": [
"coal_dust",
"glass",
"coal_dust",
"glass",
"coal_dust",
"glass",
"electronic_circuit",
"generator",
"electronic_circuit"
],
"output": {
"item": "solar_panel",
"quantity": 1
}
}
},
"recipe": {
"name": "re_battery",
"type": "craft",
"ingredients": {
"input": [
"nothing",
"insulated_copper_cable",
"nothing",
"tin",
"redstone",
"tin",
"tin",
"redstone",
"tin"
],
"output": {
"item": "re_battery",
"quantity": 1
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个Python脚本就是这个
import vanilla
print(vanilla.recipes)
Run Code Online (Sandbox Code Playgroud)
人们会认为这只是打印完整的数据结构,但事实上它只打印最后一个子项(列表中的第23-43行).我觉得我在这里遗漏了一些明显的东西.
假设我有一个字典:
my_dict = {1:[1,2,3],4:[5,6,7],8:[9,10,11]}
Run Code Online (Sandbox Code Playgroud)
我想能够打印它看起来像:
1 4 8
1 5 9
2 6 10
3 7 11
Run Code Online (Sandbox Code Playgroud)
我实际上正在处理更大的字典,如果我能看到它们的外观会很好,因为我只是说它们很难阅读 print(my_dict)
foreach ( $custom_fields as $field_key => $field_values ) {
foreach ( $field_values as $key => $value )
echo $field_key . '<br>';
echo '<pre>' , print_r( $value,true) , '</pre>';
}
Run Code Online (Sandbox Code Playgroud)
虽然我使用的是print_r与<pre>标签,在输出中看起来是这样的:
a:4:{i:0;s:6:"Casual";i:1;s:6:"Serene";i:2;s:6:"Unique";i:3;s:9:"Whimsical";}
Run Code Online (Sandbox Code Playgroud)
不应该垂直列出适当的缩进?我究竟做错了什么?
PHP的Serializer产生一个字节数组,可通过将其显示为单行字符串var_dump()。此字符串的格式很难读取,尤其是对于诸如数据库中存储的对象之类的方案。
为了读取这些值,是否可以将它们转换为缩进格式的可读字符串?还是在PHP中检索它们的唯一选择,unserialize()然后再执行诸如此类的操作var_dump()?
以下是我的档案.我试图在输出之间保持恒定的宽度,以便所有管道符号都低于另一个,它看起来像表格式.我怎样才能做到这一点?当我邮寄输出时,我也需要具有相同的格式.
cat file.txt
name,score card,ID
Jack,Available,YES
Jen,NA,NO
Jerry,Available,YES
Padula,NA,YES
Mackenzi,NA,NO
sed 's/,/\t|\t/g' c.txt
name | score card | ID
Jack | Available | YES
Jen | NA | NO
Jerry | Available | YES
Padula | NA | YES
Mackenzi | NA | NO
==I want==
name | score card | ID
Jack | Available | YES
Jen | NA | NO
Jerry | Available | YES
Padula | NA | YES
Mackenzi | NA | NO
Run Code Online (Sandbox Code Playgroud) 我已经尝试了几种不同的方法来从Python数据分析库(PANDAS)中水平连接DataFrame对象,但到目前为止我的尝试都失败了.
我有两个数据帧:
d_1:
col2 col3
col1
str1 1 1.5728
str2 2 2.4627
str3 3 3.6143
Run Code Online (Sandbox Code Playgroud)
D_2:
col2 col3
col1
str1 4 4.5345
str2 5 5.1230
str3 6 6.1233
Run Code Online (Sandbox Code Playgroud)
我希望最终得到的数据帧是d_1和d_2并排:
col2 col3 col1 col2 col3
col1
str1 1 1.5728 str1 4 4.5345
str2 2 2.4627 str2 5 5.1230
str3 3 3.6143 str3 6 6.1233
Run Code Online (Sandbox Code Playgroud)
以下是一些创建数据帧的代码:
import pandas as pd
column_headers = ["col1", "col2", "col3"]
d_1 = dict.fromkeys(column_headers)
d_1["col1"] = ["str1", "str2", "str3"]
d_1["col2"] = [1, 2, 3]
d_1["col3"] = …Run Code Online (Sandbox Code Playgroud) 目前,当我使用.loads(). 当从 Python 转换为 JSON 时,我使用indent作为参数。但是,.loads()没有缩进参数。
我浏览了 python JSON 文档,它们只展示了如何使用.dumps().
这是我的代码来说明我的观点:
import json
class Kid:
def __init__(self, name, age, nickname, isFriendly):
self.name = name
self.age = age
self.nickname = nickname
self.isFriendly = isFriendly
boy = Kid("Jimmy", 10, None, False)
def encode_kid(o):
if isinstance(o, Kid):
return {"name": o.name, "age": o.age,
"nickname": o.nickname, "Is friendly": o.isFriendly}
boyJSON = json.dumps(boy, default=encode_kid, indent=2)
boyPYTHON = json.dumps(boyJSON, indent=2)
print(boyJSON)
print(boyPYTHON)
Run Code Online (Sandbox Code Playgroud) 我正在输出相当庞大的XML结构到文件,我希望用户能够启用/禁用漂亮的打印.
我正在使用大约150MB的数据,当我尝试xml.etree.ElementTree从它的元素对象构建树结构时,它使用了大量的内存,所以我通过存储原始字符串并输出来手动执行此操作.write().我的输出序列如下所示:
ofile.write(pretty_print(u'\
\t\t<LexicalEntry id="%s">\n\
\t\t\t<feat att="languageCode" val="cz"/>\n\
\t\t\t<Lemma>\n\
\t\t\t\t<FormRepresentation>\n\
\t\t\t\t\t<feat att="writtenForm" val="%s"/>\n\
\t\t\t\t</FormRepresentation>\n\
\t\t\t</Lemma>\n\
\t\t\t<Sense>%s\n' % (str(lex_id), word['word'], '' if word['pos']=='' else '\n\t\t\t\t<feat att="partOfSpeech" val="%s"/>' % word['pos'])))
Run Code Online (Sandbox Code Playgroud)
在.write()我调用我的函数pretty_print 里面,根据命令行选项,应该删除所有制表符和换行符
o_parser = OptionParser()
# ....
o_parser.add_option("-p", "--prettyprint", action="store_true", dest="pprint", default=False)
# ....
def pretty_print(string):
if not options.pprint:
return string.strip('\n\t')
return string
Run Code Online (Sandbox Code Playgroud)
我写了'should',因为它没有,在这种特殊情况下它不会删除任何字符.
但在这种情况下,它工作正常:
for ss in word['synsets']:
ofile.write(pretty_print(u'\t\t\t\t<Sense synset="%s-synset"/>\n' % ss))
Run Code Online (Sandbox Code Playgroud)
我想到的第一件事是替换可能存在一些问题,但是当我在pretty_print 函数中打印传递的字符串时,它看起来非常好.
任何可能导致这种.strip()情况的建议都不起作用?
或者,如果有更好的方法,我会接受任何建议
def triangular(n):
tri = 0
for i in range(1, n+1):
tri = tri + i
print ("The answer is equal to" +(tri))
triangular(4)
Run Code Online (Sandbox Code Playgroud)
我只是需要print语句的帮助,因为它不起作用.我试图打印答案等于三
这是一个后续问题这一个。我需要同时对python dict进行prettyprint(这样我才能在视觉上对其进行检查/修改),并且我需要以json格式(使用双引号)输出。
pprintmodule漂亮地打印字典,但是使用单引号(不是json!)。这是链接的其他问题/答案的主题。
json.dumps 将使用双引号,但将其打印在大行中(难以阅读!)
我们如何才能做到这两者?
pretty-print ×12
python ×8
json ×3
dictionary ×2
formatting ×2
php ×2
arrays ×1
awk ×1
bash ×1
dataframe ×1
elementtree ×1
github ×1
markdown ×1
pandas ×1
python-3.x ×1
readability ×1
sed ×1
string ×1
xml ×1