首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xmltodict xml解析Python

xmltodict xml解析Python
EN

Stack Overflow用户
提问于 2015-08-03 22:53:01
回答 1查看 676关注 0票数 1

我已经设法使用xmltodict从在线XML文档中获得了所需的数据(它非常用户友好,而且我喜欢它的直观性)。但是,因为数据是作为字典解析的,所以我在以所需的方式处理它时遇到了麻烦。我需要将时间更改为%Y-%m-%d %H:%M:%S格式,并将这三列移动到以制表符分隔的文本文件中。以下是我的代码,它不起作用,但给出了我想要做什么的想法:

代码语言:javascript
复制
import datetime as dt
import numpy as np
url='http://forecast.weather.gov/MapClick.php?lat=47.6062&lon=-122.3321&FcstType=digitalDWML'
r = requests.get(url)

import xmltodict
result = xmltodict.parse(r.text)
data = []
d = result['dwml']['data']['time-layout']['start-valid-time']
d = dt.datetime.strptime(d,'%Y-%m-%dT%H:%M:%S')
#print d
pop = result['dwml']['data']['parameters']['probability-of-precipitation']['value']
#print("probability-of-precipitation =", pop)
hqpf = result['dwml']['data']['parameters']['hourly-qpf']['value']
#print("hourly-qpf =", hqpf)

data = data.append([d,
                   pop,
                   hqpf])
with open ('KBFI_2.txt','w') as file:
    file.writelines('\t'.join(map(str,i)) + '\n' for i in data)

有没有办法可以改变字典的格式,这样我就可以操纵它了??对Python和XML解析非常陌生。

EN

回答 1

Stack Overflow用户

发布于 2017-11-02 00:04:37

您可以自由地操作字典,而无需更改其格式。这只是你的代码中的几个错误,阻碍了你正确地完成它。要更改字典的值,您需要直接将新值分配给key:

代码语言:javascript
复制
d = result['dwml']['data']['time-layout']['start-valid-time']
result['dwml']['data']['time-layout']['start-valid-time'] = dt.datetime.strptime(d, '%Y-%m-%dT%H:%M:%S')

第二个错误是list.append返回None,您将其赋值回list变量。只管去做

代码语言:javascript
复制
data.append([d, pop, hqpf])  # without data=

你就会好起来的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31790450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档