我正在使用以下过程来获取json文件并将其分解为我可以进一步使用的字典文件。我正在使用的代码如下:
import urllib
import json
pricelist_link="http://foo.com/test.json"
price_instance=urllib.urlopen(pricelist_link)
print type(price_instance)
parsed_price_data = json.loads(price_instance.read())
print type(parsed_price_data)
print parsed_price_data
这似乎是执行此操作的标准方法(我已经看到了使用urllib2的建议,但是这对我没有产生不同的结果。
当我在浏览器中查看JSON文件时,它显示正常,带双引号:
{"AK-47 | Aquamarine Revenge (Battle-Scarred)":{"2016-01-26":{"price":821,"count":19},"2016-01-27":{"price":762,"count":24},"2016-01-28":{"price":745,"count":22},"2016-01-29":...
但是,当我打印“parsed_price_data”时,它会在单引号前显示u
。
{u'P250 | Muertos (Battle-Scarred)': {u'2016-03-13': {u'count': 3, u'price': 118}, u'2016-03-17': {u'count': 3, u'price': 129}, u'2016-03-01': {u'count':
我并不担心双引号会引用单引号,但u
是什么?如果没有繁琐的正则表达式,有没有一种简单的方法可以解决这个问题?
答案 0 :(得分:2)
String1 ='abcd' 字符串2 = u'abcd'
不要惊慌。 'u'表示Unicode,json将字符串值转储为Unicode类型。您可能不需要修复它,因为在python中如果您尝试在上面的示例中将'string1'与'string2'进行比较,则返回True。
我不确定这一点,但我认为在python3 +默认情况下所有字符串都是Unicode,而'u'前缀用于旧版本。所以我的猜测是你正在使用python 2.7。
答案 1 :(得分:0)
答案 2 :(得分:0)
你' 字符串'是python代码中的unicode representation,以及控制台输出(从打印结果中看到)。
您的json源文件应该由utf-8编码,因为json.load使用的默认编码是utf-8。