Python 将字典转换为字符串
在python中将字典转换为字符串时遇到问题。我试图从我的一个变量中提取信息,但似乎无法删除信息周围的方括号Python 将字典转换为字符串,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,在python中将字典转换为字符串时遇到问题。我试图从我的一个变量中提取信息,但似乎无法删除信息周围的方括号 for line in str(object): if line.startswith ('['): new_object = object.replace('[', '') 有没有办法去掉方括号,或者我必须找到另一种方法从字典中删除信息? 编辑: 更详细地说,我想做的是 import requests city = 'dublin' country = 'ir
for line in str(object):
if line.startswith ('['):
new_object = object.replace('[', '')
有没有办法去掉方括号,或者我必须找到另一种方法从字典中删除信息?
编辑:
更详细地说,我想做的是
import requests
city = 'dublin'
country = 'ireland'
info = requests.get('http://api.openweathermap.org/data/2.5/weather?q='+city +','+ country +'&mode=json')
weather = info.json()['weather']
fh = open('/home/Ricky92d3/city.txt', 'w')
fh.write(str(weather))
fh.close()
fl = open('/home/Ricky92d3/city.txt')
Object = fl.read()
fl.close()
for line in str(Object):
if line.startswith ('['):
new_Object = Object.replace('[', '')
if line.startswith ('{'):
new_Object = Object.replace('{u', '')
print new_Object
我希望这能让我想做的事情更清楚一点我不太确定你在这里想做什么(没有看到你的字典),但是如果你有一个像
x=“[myString]”这样的字符串
你可以做以下事情:
x = x.replace("[", "").replace("]", "")
如果这不起作用,您很有可能会收到返回的列表。如果是这种情况,您应该会看到如下错误:
>>> x = [1,2,3]
>>> x.replace("[", "")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'replace'
这是通过在您获取的项目列表中循环,并使用a将其作为一行写入csv文件来实现的
奖金
不要调用字典
对象
-它是核心语言的保留字。我不太确定你在这里想做什么(没有看到你的字典),但是如果你有一个像x=“[myString]”这样的字符串
,你可以执行以下操作:
x = x.replace("[", "").replace("]", "")
如果这不起作用,您很有可能会收到返回的列表。如果是这种情况,您应该会看到如下错误:
>>> x = [1,2,3]
>>> x.replace("[", "")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'replace'
这是通过在您获取的项目列表中循环,并使用a将其作为一行写入csv文件来实现的
奖金
不要调用字典
对象
——它是核心语言的保留字。由info.json()
返回的对象是Python字典,因此您可以使用正常的Python语法访问其内容。我承认这可能会有点棘手,因为JSON字典通常包含其他字典和列表,但如果您以良好的格式打印JSON对象,通常不太难弄清楚是什么。最简单的方法是使用标准Pythonjson
模块中的dumps()
函数
下面的代码将JSON数据检索到名为data
然后,它从数据的“天气”项中的列表中打印“说明”字符串 然后,它将所有数据(不仅仅是“天气”项)保存为ASCII编码的JSON文件。
然后,它再次将JSON数据读回一个名为
newdata
的新dict,并漂亮地打印出来。
最后,它再次打印天气描述,以验证我们是否恢复了之前看到的天气状况。:)
输出
description: light intensity shower rain
{
"clouds": {
"all": 75
},
"name": "Dublin",
"visibility": 10000,
"sys": {
"country": "IE",
"sunset": 1438374108,
"message": 0.0118,
"type": 1,
"id": 5237,
"sunrise": 1438317600
},
"weather": [
{
"description": "light intensity shower rain",
"main": "Rain",
"id": 520,
"icon": "09d"
}
],
"coord": {
"lat": 53.340000000000003,
"lon": -6.2699999999999996
},
"base": "stations",
"dt": 1438347600,
"main": {
"pressure": 1014,
"humidity": 62,
"temp_max": 288.14999999999998,
"temp": 288.14999999999998,
"temp_min": 288.14999999999998
},
"id": 2964574,
"wind": {
"speed": 8.1999999999999993,
"deg": 210
},
"cod": 200
}
description: light intensity shower rain
info.json()
返回的对象是Python字典,因此您可以使用普通Python语法访问其内容。我承认这可能会有点棘手,因为JSON字典通常包含其他字典和列表,但如果您以良好的格式打印JSON对象,通常不太难弄清楚是什么。最简单的方法是使用标准Pythonjson
模块中的dumps()
函数
下面的代码将JSON数据检索到名为data
然后,它从数据的“天气”项中的列表中打印“说明”字符串 然后,它将所有数据(不仅仅是“天气”项)保存为ASCII编码的JSON文件。
然后,它再次将JSON数据读回一个名为
newdata
的新dict,并漂亮地打印出来。
最后,它再次打印天气描述,以验证我们是否恢复了之前看到的天气状况。:)
输出
description: light intensity shower rain
{
"clouds": {
"all": 75
},
"name": "Dublin",
"visibility": 10000,
"sys": {
"country": "IE",
"sunset": 1438374108,
"message": 0.0118,
"type": 1,
"id": 5237,
"sunrise": 1438317600
},
"weather": [
{
"description": "light intensity shower rain",
"main": "Rain",
"id": 520,
"icon": "09d"
}
],
"coord": {
"lat": 53.340000000000003,
"lon": -6.2699999999999996
},
"base": "stations",
"dt": 1438347600,
"main": {
"pressure": 1014,
"humidity": 62,
"temp_max": 288.14999999999998,
"temp": 288.14999999999998,
"temp_min": 288.14999999999998
},
"id": 2964574,
"wind": {
"speed": 8.1999999999999993,
"deg": 210
},
"cod": 200
}
description: light intensity shower rain
为什么在
str(object)
版本上循环?您现在正在迭代单个字符。你想解决的问题是什么?你能给我们一个示例对象值,并告诉我们更多关于你的预期输出吗?为什么不直接循环字典呢?您可以循环键、值或成对的键和值。您不能使用str(yourdictionary)
将其转换为字符串吗?您可以轻松地直接从weather
中的列表访问JSON数据。例如,打印天气[0]['description']
当前打印的是碎云
。但是,如果您需要将其写入文件并再次读取,则应使用标准Python模块写入并读取。请包括预期的输出和确切的错误消息(如果有)。为什么要循环使用str(object)
版本?您现在正在迭代单个字符。你想解决的问题是什么?你能给我们一个示例对象值,并告诉我们更多关于你的预期输出吗?为什么不直接循环字典呢?您可以循环键、值或成对的键和值。您不能使用str(yourdictionary)
将其转换为字符串吗?您可以轻松地直接从weather
中的列表访问JSON数据。例如,打印天气[0]['description']
当前打印的是碎云
。但是,如果您需要将其写入文件,然后再次读取,则应使用标准Python模块写入并读取。请包括预期的输出和确切的错误消息(如果有)。+1作为奖励。也许它看起来很琐碎,但注意保留的单词是非常重要的。这可能会导致严重的bug。我试图从JSON api中获取信息。我将变量保存为“weather=info.json()['weather']”,并将结果保存为文本文件。然后循环删除信息开头的“[”括号,但是“new_Object=Object.replace(“[”,“”)不会影响它+1作为奖励。也许它看起来微不足道,但注意保留字非常重要。这可能会导致严重的错误。我正在尝试接受inf