2015-04-05 65 views
1

我想写从open exchange rates获取货币名单,并返回它作为一个字典的模块。我试过玩urllib模块,但我的知识是有限的。从网站获取的货币,并返回一个字典

这是我到目前为止有:

import urllib.request 
response = urllib.request.urlopen('http://openexchangerates.org/api/currencies.json') 
html = response.read() 
print(html) 

回答

4

你有你的html变量什么是JSON字符串。只是解析它转换成一个字典:

import json 
import urllib.request 
response = urllib.request.urlopen('http://openexchangerates.org/api/currencies.json') 
html = response.read().decode("utf-8") 

my_dict = json.loads(html) 
print my_dict 
+0

谢谢你答复。 Traceback(最近调用最后一次): 文件“C:\ Users \ daniel \ Documents \ Python Scripts \ untitled22.py”,第5行,在 my_dict = json.loads(html) 文件“C:\ Users \ daniel \ Anaconda3 \ lib \ json \ __ init__.py“,第312行,载入中 s .__ class __.__ name__)) TypeError:JSON对象必须是str,而不是'bytes'(我做错了什么?) – PeteG 2015-04-05 14:12:24

+0

对不起,它必须被解码为utf-8。看到我更新的答案。 – Selcuk 2015-04-05 14:23:44

-1

如果你只是想货币列出这应该这样做:

import urllib 
response = urllib.urlopen('http://openexchangerates.org/api/currencies.json') 
html = response.read() 
print(html) 

这就是我得到:

{ 
    "AED": "United Arab Emirates Dirham", 
    "AFN": "Afghan Afghani", 
    "ALL": "Albanian Lek", 
    "AMD": "Armenian Dram", 
    "ANG": "Netherlands Antillean Guilder", 
    "AOA": "Angolan Kwanza", 
    "ARS": "Argentine Peso", 
    "AUD": "Australian Dollar", 
    "AWG": "Aruban Florin", 
    "AZN": "Azerbaijani Manat", 
    "BAM": "Bosnia-Herzegovina Convertible Mark", 
    "BBD": "Barbadian Dollar", 
    "BDT": "Bangladeshi Taka", 
    "BGN": "Bulgarian Lev", 
    "BHD": "Bahraini Dinar", 
    "BIF": "Burundian Franc", 
    "BMD": "Bermudan Dollar", 
    "BND": "Brunei Dollar", 
    "BOB": "Bolivian Boliviano", 
    "BRL": "Brazilian Real", 
    "BSD": "Bahamian Dollar", 
    "BTC": "Bitcoin", 
    "BTN": "Bhutanese Ngultrum", 
    "BWP": "Botswanan Pula", 
    "BYR": "Belarusian Ruble", 
    "BZD": "Belize Dollar", 
    "CAD": "Canadian Dollar", 
    "CDF": "Congolese Franc", 
    "CHF": "Swiss Franc", 
    "CLF": "Chilean Unit of Account (UF)", 
    "CLP": "Chilean Peso", 
    "CNY": "Chinese Yuan", 
    "COP": "Colombian Peso", 
    "CRC": "Costa Rican Col籀n", 
    "CUC": "Cuban Convertible Peso", 
    "CUP": "Cuban Peso", 
    "CVE": "Cape Verdean Escudo", 
    "CZK": "Czech Republic Koruna", 
    "DJF": "Djiboutian Franc", 
    "DKK": "Danish Krone", 
    "DOP": "Dominican Peso", 
    "DZD": "Algerian Dinar", 
    "EEK": "Estonian Kroon", 
    "EGP": "Egyptian Pound", 
    "ERN": "Eritrean Nakfa", 
    "ETB": "Ethiopian Birr", 
    "EUR": "Euro", 
    "FJD": "Fijian Dollar", 
    "FKP": "Falkland Islands Pound", 
    "GBP": "British Pound Sterling", 
    "GEL": "Georgian Lari", 
    "GGP": "Guernsey Pound", 
    "GHS": "Ghanaian Cedi", 
    "GIP": "Gibraltar Pound", 
    "GMD": "Gambian Dalasi", 
    "GNF": "Guinean Franc", 
    "GTQ": "Guatemalan Quetzal", 
    "GYD": "Guyanaese Dollar", 
    "HKD": "Hong Kong Dollar", 
    "HNL": "Honduran Lempira", 
    "HRK": "Croatian Kuna", 
    "HTG": "Haitian Gourde", 
    "HUF": "Hungarian Forint", 
    "IDR": "Indonesian Rupiah", 
    "ILS": "Israeli New Sheqel", 
    "IMP": "Manx pound", 
    "INR": "Indian Rupee", 
    "IQD": "Iraqi Dinar", 
    "IRR": "Iranian Rial", 
    "ISK": "Icelandic Kr籀na", 
    "JEP": "Jersey Pound", 
    "JMD": "Jamaican Dollar", 
    "JOD": "Jordanian Dinar", 
    "JPY": "Japanese Yen", 
    "KES": "Kenyan Shilling", 
    "KGS": "Kyrgystani Som", 
    "KHR": "Cambodian Riel", 
    "KMF": "Comorian Franc", 
    "KPW": "North Korean Won", 
    "KRW": "South Korean Won", 
    "KWD": "Kuwaiti Dinar", 
    "KYD": "Cayman Islands Dollar", 
    "KZT": "Kazakhstani Tenge", 
    "LAK": "Laotian Kip", 
    "LBP": "Lebanese Pound", 
    "LKR": "Sri Lankan Rupee", 
    "LRD": "Liberian Dollar", 
    "LSL": "Lesotho Loti", 
    "LTL": "Lithuanian Litas", 
    "LVL": "Latvian Lats", 
    "LYD": "Libyan Dinar", 
    "MAD": "Moroccan Dirham", 
    "MDL": "Moldovan Leu", 
    "MGA": "Malagasy Ariary", 
    "MKD": "Macedonian Denar", 
    "MMK": "Myanma Kyat", 
    "MNT": "Mongolian Tugrik", 
    "MOP": "Macanese Pataca", 
    "MRO": "Mauritanian Ouguiya", 
    "MTL": "Maltese Lira", 
    "MUR": "Mauritian Rupee", 
    "MVR": "Maldivian Rufiyaa", 
    "MWK": "Malawian Kwacha", 
    "MXN": "Mexican Peso", 
    "MYR": "Malaysian Ringgit", 
    "MZN": "Mozambican Metical", 
    "NAD": "Namibian Dollar", 
    "NGN": "Nigerian Naira", 
    "NIO": "Nicaraguan C籀rdoba", 
    "NOK": "Norwegian Krone", 
    "NPR": "Nepalese Rupee", 
    "NZD": "New Zealand Dollar", 
    "OMR": "Omani Rial", 
    "PAB": "Panamanian Balboa", 
    "PEN": "Peruvian Nuevo Sol", 
    "PGK": "Papua New Guinean Kina", 
    "PHP": "Philippine Peso", 
    "PKR": "Pakistani Rupee", 
    "PLN": "Polish Zloty", 
    "PYG": "Paraguayan Guarani", 
    "QAR": "Qatari Rial", 
    "RON": "Romanian Leu", 
    "RSD": "Serbian Dinar", 
    "RUB": "Russian Ruble", 
    "RWF": "Rwandan Franc", 
    "SAR": "Saudi Riyal", 
    "SBD": "Solomon Islands Dollar", 
    "SCR": "Seychellois Rupee", 
    "SDG": "Sudanese Pound", 
    "SEK": "Swedish Krona", 
    "SGD": "Singapore Dollar", 
    "SHP": "Saint Helena Pound", 
    "SLL": "Sierra Leonean Leone", 
    "SOS": "Somali Shilling", 
    "SRD": "Surinamese Dollar", 
    "STD": "S瓊o Tom矇 and Pr穩ncipe Dobra", 
    "SVC": "Salvadoran Col籀n", 
    "SYP": "Syrian Pound", 
    "SZL": "Swazi Lilangeni", 
    "THB": "Thai Baht", 
    "TJS": "Tajikistani Somoni", 
    "TMT": "Turkmenistani Manat", 
    "TND": "Tunisian Dinar", 
    "TOP": "Tongan Pa妡anga", 
    "TRY": "Turkish Lira", 
    "TTD": "Trinidad and Tobago Dollar", 
    "TWD": "New Taiwan Dollar", 
    "TZS": "Tanzanian Shilling", 
    "UAH": "Ukrainian Hryvnia", 
    "UGX": "Ugandan Shilling", 
    "USD": "United States Dollar", 
    "UYU": "Uruguayan Peso", 
    "UZS": "Uzbekistan Som", 
    "VEF": "Venezuelan Bol穩var Fuerte", 
    "VND": "Vietnamese Dong", 
    "VUV": "Vanuatu Vatu", 
    "WST": "Samoan Tala", 
    "XAF": "CFA Franc BEAC", 
    "XAG": "Silver (troy ounce)", 
    "XAU": "Gold (troy ounce)", 
    "XCD": "East Caribbean Dollar", 
    "XDR": "Special Drawing Rights", 
    "XOF": "CFA Franc BCEAO", 
    "XPF": "CFP Franc", 
    "YER": "Yemeni Rial", 
    "ZAR": "South African Rand", 
    "ZMK": "Zambian Kwacha (pre-2013)", 
    "ZMW": "Zambian Kwacha", 
    "ZWL": "Zimbabwean Dollar" 
} 
+0

我需要它返回一个字典 – PeteG 2015-04-05 14:14:26

+0

@DannyGoodall它应该是一本字典,请我的代码运行,并检查 – 2015-04-05 14:15:53

+0

谢谢你,关于Python 3 IM所以稍微改变你的代码,但所有的肉汁现在。 – PeteG 2015-04-05 14:18:05