'add " characters in write function python
I have a code that emits this output
file.write(row['time'] + "{application=" + row['application'] + ",runtime=" + str(row['runtime']) + "} " + row['value'] + "\n")
output:
folder_put_time{application=app1,runtime=1231231231} 17
I want the format to be as following:
folder_put_time{application="app1", runtime="1231231231"} 19
How can I add the "
sign in code? + "/""
didn't work for me
Thanks
Solution 1:[1]
Since your data is already in a dict (or a mapping object anyway), I think the cleanest option here is to use str.format_map
(though the double {{
}}
to escape the other quotes are a bit ugly still:)
file.write('{time}{{application="{application}",runtime="{runtime}"}} {value}\n'.format_map(row))
You could use \"
to escape quotes:
file.write(row['time'] + "{application=\"" + row['application'] + "\",runtime=\"" + str(row['runtime']) + "\"} " + row['value'] + "\n")
or use a single-quoted string and just use plain "
within the string:
file.write(row['time'] + '{application="' + row['application'] + '",runtime="' + str(row['runtime']) + '"} ' + row['value'] + '\n')
You could also use an f-string for less str()
casts, but accessing dicts within an f-string is a bit ugly (and curly braces need to be escaped by doubling).
file.write(f'{row["time"]}{{application=\"{row["application"]}\",runtime=\"{row["runtime"]}\"}} {row["value"]}\n')
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |