@@ -63,41 +63,51 @@ def make_lines(data):
6363 Extracts the points from the given dict and returns a Unicode string
6464 matching the line protocol introduced in InfluxDB 0.9.0.
6565 """
66- lines = ""
66+ lines = []
6767 static_tags = data .get ('tags' , None )
6868 for point in data ['points' ]:
69+ elements = []
70+
6971 # add measurement name
70- lines + = _escape_tag (_force_text (
72+ measurement = _escape_tag (_force_text (
7173 point .get ('measurement' , data .get ('measurement' ))
72- )) + ","
74+ ))
75+ key_values = [measurement ]
7376
7477 # add tags
7578 if static_tags is None :
7679 tags = point .get ('tags' , {})
7780 else :
7881 tags = copy (static_tags )
7982 tags .update (point .get ('tags' , {}))
83+
8084 # tags should be sorted client-side to take load off server
8185 for tag_key in sorted (tags .keys ()):
8286 key = _escape_tag (tag_key )
8387 value = _escape_tag (tags [tag_key ])
8488 if key != '' and value != '' :
85- lines += "{key}={value}," .format (key = key , value = value )
86- lines = lines [:- 1 ] + " " # strip the trailing comma
89+ key_values .append ("{key}={value}" .format (key = key , value = value ))
90+ key_values = ',' .join (key_values )
91+ elements .append (key_values )
8792
8893 # add fields
94+ field_values = []
8995 for field_key in sorted (point ['fields' ].keys ()):
90- lines += "{key}={value}, " .format (
96+ field_values . append ( "{key}={value}" .format (
9197 key = _escape_tag (field_key ),
9298 value = _escape_value (point ['fields' ][field_key ]),
93- )
94- lines = lines [:- 1 ] # strip the trailing comma
99+ ))
100+ field_values = ',' .join (field_values )
101+ elements .append (field_values )
95102
96103 # add timestamp
97104 if 'time' in point :
98- lines += " " + _force_text (str (int (
105+ timestamp = _force_text (str (int (
99106 _convert_timestamp (point ['time' ])
100107 )))
108+ elements .append (timestamp )
101109
102- lines += "\n "
103- return lines
110+ line = ' ' .join (elements )
111+ lines .append (line )
112+ lines = '\n ' .join (lines )
113+ return lines + '\n '
0 commit comments