[英]Parsing json string representation with delimited double quote marks and booleans in python
[英]Parsing JSON array in Python to create a delimited string
全新的 Python 并尝试解析如下所示的 JSON 数组:
[
{"Event":"start","EventDateTime":"2015-09-15T03:45:16.681428Z"},
{"Event":"process","EventDateTime":"2015-09-15T03:45:16.681428Z"},
{"Event":"end","EventDateTime":"2015-09-15T03:45:16.681428Z"}
]
我需要输出在字符串制表符分隔字段和新行分隔行上,如下所示:
start \t 2015-09-15T03:45:16.681428Z \n
process \t 2015-09-15T03:45:16.681428Z \n
end \t 2015-09-15T03:45:16.681428Z
这是我到目前为止的代码:
import json
if not j or not i:
return None
try:
arr = json.loads(j)
except ValueError:
return None
if len(arr) <= 0:
return None
row=i
for li in arr
elem = json.loads(li, object_pairs_hook=collections.OrderedDict)
row=row + '\t' + elem.Key + '\t' + elem.Value + \n
return row
首先我得到,缩进错误,固定缩进,但得到关于“集合”未定义的错误。
有没有办法在不使用这些集合的情况下做我需要的事情。 当我删除集合对象时,我会收到其他错误。
谢谢!!
import json
j = """[
{"Event":"start","EventDateTime":"2015-09-15T03:45:16.681428Z"},
{"Event":"process","EventDateTime":"2015-09-15T03:45:16.681428Z"},
{"Event":"end","EventDateTime":"2015-09-15T03:45:16.681428Z"}
]"""
j = json.loads(j)
for item in j:
print '%s\t%s' % (item['Event'], item['EventDateTime'])
怎么样:
j = '''[
{"Event":"start","EventDateTime":"2015-09-15T03:45:16.681428Z"},
{"Event":"process","EventDateTime":"2015-09-15T03:45:16.681428Z"},
{"Event":"end","EventDateTime":"2015-09-15T03:45:16.681428Z"}
]
'''
import json
content = json.loads(j)
keys = content[0].keys()
for i in content:
print(' \t '.join([i[k] for k in keys]) + '\n')
鉴于 OP 正在使用 OrderedDict 钩子,那么您可以在不参考名称的情况下可靠地执行此操作:
arr = json.loads(j, object_pairs_hook=collections.OrderedDict)
for item in arr:
print(' \t '.join(item.values()))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.