非常简单的python 2.7查找/替换文本问题 - 我有文本文件,每个都是一个长行(没有换行符),并且每个长行内部是逗号分隔的部分,如此(尽管有部分不是这种格式):
"Country":"USA","City":"Chicago","Phone":"123-456-7890","Contact":"John Doe"
我想通过文本文件,每当找到我正在寻找的几个字段之一的':'
字符时,打印出字段和相应的值(总是在引号中)它们之间的分隔符......所以我要说我只关注'Country'
和'City'
字段 - 我想在引号中找到这些字段名称之一并打印出相应的值,如此:
Country|USA
City|Chicago
同时忽略所有其他':'
配对值。
答案 0 :(得分:1)
with open('file.txt', 'rb') as f:
data = {x.split(':')[0].replace('"', '').lower().strip(): x.split(':')[1].replace('"', '').strip() for x in f.read().split(',')}
user_in = raw_input('Search: ')
print '{0}|{1}'.format(user_in, data.get(user_in.lower(), 'Not Found'))
答案 1 :(得分:0)
st = '"Country":"USA","City":"Chicago","Phone":"123-456-7890","Contact":"John Doe"'
def get_value(string_,key_):
d = {}
st2 = string_.split(",")
for el in st2:
k,v = el.split(":")
k = k[1:-1]
d[k] = v
return d[key_][1:-1]
print(get_value(st, "Country") )
# USA
keywords = ["Country","City", "Phone", "Contact"]
for w in keywords:
print(get_value(st, w))
USA
Chicago
123-456-7890
John Doe