python - 将字典保存为包含我可以不断添加的列的文件

标签 python file dictionary currency

我有一本货币字典hereJSON .

为了简单起见,我将给出一个示例:

{
    "AED": "united Arab Emirates Dirham",
    "AFN": "Afghan Afghani",
    ...
    "ZWL": "Zimbabwean Dollar"
}

我希望将它们添加到一个文件中,以便我可以在不同时间连续添加不同的货币集。该文件应有一列用于货币(例如“AED”)的代码名称,另一列用于名称

我真的不知道从哪里开始。非常感谢帮助我指出正确的方向。

我的字典代码如下:

import json
import urllib.request
def _fetch_currencies():
    f = urllib.request.urlopen(
        'http://openexchangerates.org/api/currencies.json')
    charset = f.info().get_param('charset', 'utf8')
    data = f.read()
    decoded = json.loads(data.decode(charset))
    print(json.dumps(decoded, indent=4))

最佳答案

您可以简单地将数据保存在 csv 中每种货币一行:

AED, united Arab Emirates Dirham
AFN, Afghan Afghani
ZWL, Zimbabwean Dollar

为此,您可能希望将字典转换为行,但在本例中,这很简单,因为它只是一对 (key, value):

rows = decoded.items()

但是请注意,项目将以随机顺序排列,如果您希望对条目进行排序,可以在写入文件之前对它们进行排序:

rows.sort()

最后,使用 csv module :

import csv
with open('local_file.csv', 'w') as my_csv:
    csv_writer = csv.writer(my_csv, delimiter=',')
    csv_writer.writerows(sorted(decoded.items()))

综合起来:

import json
import urllib.request
import csv

def fetch_currencies():
    f = urllib.request.urlopen('http://openexchangerates.org/api/currencies.json')
    charset = f.info().get_param('charset', 'utf8')
    data = f.read()
    decoded = json.loads(data.decode(charset))
    return decoded

def save_currencies(currencies, filename):
    sorted_currencies = sorted(currencies.items())
    with open(filename, 'w') as my_csv:
        csv_writer = csv.writer(my_csv, delimiter=',')
        csv_writer.wrtiterows(sorted_currencies)

save_currencies(fetch_currencies(), 'currencies.csv')

关于python - 将字典保存为包含我可以不断添加的列的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29473176/

相关文章:

保存文件的Android FileOutputStream

c - fsetpos 未按预期设置文件指针的位置

python - 如何从Python3中的输入字符串创建字典

C# MVC-发布一个包含字典的 View 模型

java - 如何在java中获取任何文件的图标/图像?

javascript - 铯 JS : center map in 2d scene mode

python - 你如何在 OpenElec 中运行 python 脚本

python - 仅将文件名的一部分替换为其文件夹名称

python - 更新列类型JsonBlob的mysql表行

python - 如何获得数据框的简单散点图(最好使用 seaborn)