【发布时间】:2014-02-12 13:11:38
【问题描述】:
我有一个 json 文件的文件夹,我想解析特定的键值对。然后将这些对附加到字典中,然后将该字典(作为 json 行)输出到新的 json 文件中。我目前无法获取文件夹中的文件进行解析,更不用说将解析后的数据导入字典进行打印了。这是我的代码:
import json, os
FbDict=[]
topdir=os.getcwd()
def main():
for root, dirs, files in os.walk(topdir):
for f in files:
if f.lower().endswith((".json")):
json_data = open(f, 'r+').read().decode("utf-8")
jdata = json.loads(json_data)
fname=f.split(".json")[0]
for k, v in jdata.items():
if isinstance(v, dict):
try:
dataFormat = {"created_at":v['data'][0]['created_time'],"user":v['data'][0]['from']['id'],
"id":v['data'][0]['id'],"name":v['data'][0]['from']['name'],"text":v['data'][0]['message']}
FbDict.append(json.dumps(dataFormat, separators=(',', ':')))
except KeyError:
continue
if __name__ == '__main__':
main()
with open ('fbFile', 'w') as f:
f.write(FbDict)
【问题讨论】:
-
你的代码有什么问题?它会产生错误吗?它会运行但产生错误的输出吗?
-
@larsks 哦,是的,那个。它给了我 [errno 2] - 没有这样的文件或目录,并列出了一个不在文件夹中但之前在记事本中打开的文件。我不明白这段代码是如何对不属于文件夹的其他文件进行排序的?
标签: python json parsing dictionary